apache RewriteRule需要在url末尾使用尾随斜杠
好的,我有一个像apache RewriteRule需要在url末尾使用尾随斜杠,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,好的,我有一个像 domain.com/item/item_id/item_description/page 当我键入链接时没有 /page 在url上,它抛出了一个404错误,我必须在url上键入尾随斜杠以使其正常工作 这是我的密码 Options +FollowSymLinks RewriteEngine On RewriteRule ^item/([0-9]+)/(.*)/(.*)/?$ item.php?action=item&id=$1&desc=$2&pa
domain.com/item/item_id/item_description/page
当我键入链接时没有
/page
在url上,它抛出了一个404错误,我必须在url上键入尾随斜杠以使其正常工作
这是我的密码
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^item/([0-9]+)/(.*)/(.*)/?$ item.php?action=item&id=$1&desc=$2&page=$3
我在搜索后发现:
# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*[^/]$ /$0/ [L,R=301]
这解决了我的问题,但如果用户想添加或不添加尾随斜杠,我如何让用户选择尾随斜杠,这样每次找不到斜杠时它都不会重定向使用两个重写规则(一个带“page”,一个不带“page”):
您可以使用一个重写规则来处理请求 RewriteRule ^item(?:\.php)/([0-9]+)/([^/]+)?/?([^/]+)?/?$ item.php?action=item&id=$1&desc=$2&page=$3 [L] 进入 提示:您可以看到当前的重写规则行为启用重写日志:
RewriteLogLevel 9
RewriteLog "/var/log/apache2/dummy-host.example.com-rewrite_log"
注意不要在生产中使用此功能
domain.com/item/...
domain.com/item.php/...
RewriteLogLevel 9
RewriteLog "/var/log/apache2/dummy-host.example.com-rewrite_log"