Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
apache RewriteRule需要在url末尾使用尾随斜杠_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

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"