【发布时间】:2016-10-29 03:47:34
【问题描述】:
我在根目录下的.htaccess 文件中有以下重写规则:
RewriteEngine On
# Exclude .css / .js / ...
RewriteCond ${REQUEST_URI} ^.+$
RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf|xml)$ [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]
# Rewrite Rule
RewriteRule ^([^/]*)/([^/]*)$ /index.php?category=$1&product=$2
所以 URL http://example.com/data1/data2 给我category=data1 和product=data2。
问题是以下 URL 不起作用:
http://example.com/data1 # Not Working (Page Not Found)
http://example.com/data1/data2/ # Not Working (Page Not Found)
但这些 URL 可以正常工作:
http://example.com/data1/ # Works -> category=data1
http://example.com/data1/data2 # Works -> category=data1 & product=data2
如何重定向前两个 URL 到第二个?
或/与
做一些事情,所有的网址都重定向到非尾随斜杠。所以下面的网址:
http://example.com/data1/
http://example.com/data1/data2/
被重定向到这些:
http://example.com/data1
http://example.com/data1/data2
【问题讨论】:
标签: apache .htaccess redirect mod-rewrite trailing-slash