现在我的网址看起来像这样:
http://domain.com/en/c/product%2C-product2%2C-product3/82
其中最后一个数字是类别数字。
我试图重写它并将用户重定向到url,它应该看起来像这样:
http://domain.com/82/product-product2-product3
线索是我想要隐藏“en / c /”部分并清除逗号和空格中的URL。我的写作完全是绿色的。 有什么想法吗?
答案 0 :(得分:1)
为了使其正常工作,我们需要告诉服务器在内部将URL“url1”的所有请求重定向到“url2.php”。我们希望这在内部发生,因为我们不希望浏览器地址栏中的URL发生变化。
为此,我们需要先创建一个名为“ .htaccess ”的文本文档,以包含我们的规则。它必须完全命名(不是“.htaccess.txt”或“rules.htaccess”)。这将放在服务器的根目录中(与我们示例中的“url2.php”相同)。那里可能已经存在.htaccess文件,在这种情况下我们应该编辑它而不是覆盖它。
.htaccess文件是服务器的配置文件。如果文件中有错误,服务器将显示错误消息(通常错误代码为“500”)。
如果要使用FTP将文件传输到服务器,则必须确保使用ASCII模式而不是BINARY传输文件。在这个例子中,我们使用这个文件来执行2个简单的任务 - 首先,告诉Apache打开重写引擎,然后告诉apache我们希望它使用什么重写规则。我们需要将以下内容添加到文件中:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^url1/?$ url2.php [NC,L] # Handle requests for "url1"
答案 1 :(得分:1)
您可以在根目录.htaccess中使用这两个规则:
RewriteEngine On
RewriteBase /
RewriteRule ^en/c/([^,\s]*)[,\s]+([^,\s]*)/(\d+)/?$ $3/$1$2 [NC,L,NE,R=302]
RewriteRule ^(en/c)/([^,\s]*)[,\s]+(.*)/(\d+)/?$ $1/$2$3/$4 [NC,L]