[英]Optional trailing slash mod_rewrite
I have a very specific problem. 我有一个非常具体的问题。 The title gives a lot of other questions that have correct answers, however I don't know how to fit this to my own rewrite rules. 标题提供了许多其他具有正确答案的问题,但是我不知道如何使它适合我自己的重写规则。
My .htaccess looks like so: 我的.htaccess如下所示:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[^/]*/?$ index.php [NC,L]
RewriteCond %{REQUEST_URI} !(^/dev/zeroyear/$)
RewriteRule ^dev/zeroyear/([^/]+)/?([^/]*)/?([^/]*)/?([^/]*)/?$ /dev/zeroyear/index.php?var1=$1&var2=$2&var3=$3&var4=$4 [L,QSA]
I want the following 2 URLs to redirect to the same page: 我希望以下2个URL重定向到同一页面:
http://timesheep.name/dev/zeroyear/news
http://timesheep.name/dev/zeroyear/news/
The last rewrite rule is causing a 500 because of the question mark I put, but the logs say nothing. 由于我放置了问号,最后一个重写规则导致500,但是日志什么也没说。 If I change it to this: 如果我将其更改为:
RewriteRule ^dev/zeroyear/([^/]+)/([^/]*)/?([^/]*)/?([^/]*)/?$ /dev/zeroyear/index.php?var1=$1&var2=$2&var3=$3&var4=$4 [L,QSA]
The error goes away, but http://timesheep.name/dev/zeroyear/news will return a 404. 错误消失了,但是http://timesheep.name/dev/zeroyear/news将返回404。
What can I do about this? 我该怎么办?
You've got a mix of non-greedy matches (which will eat up optional /
's) and optional /
's all mixed together. 您会混合使用非贪婪的匹配项(这会吃掉可选的/
)和可选的/
混合在一起。 Try separating them into distinct matches: 尝试将它们分成不同的匹配项:
RewriteCond %{REQUEST_URI} !(^/dev/zeroyear/$)
RewriteRule ^dev/zeroyear/([^/]+)/([^/]+)/([^/]+)/([^/]+?)/?$ /dev/zeroyear/index.php?var1=$1&var2=$2&var3=$3&var4=$4 [L,QSA]
RewriteCond %{REQUEST_URI} !(^/dev/zeroyear/$)
RewriteRule ^dev/zeroyear/([^/]+)/([^/]+)/([^/]+?)/?$ /dev/zeroyear/index.php?var1=$1&var2=$2&var3=$3 [L,QSA]
RewriteCond %{REQUEST_URI} !(^/dev/zeroyear/$)
RewriteRule ^dev/zeroyear/([^/]+)/([^/]+?)/?$ /dev/zeroyear/index.php?var1=$1&var2=$2 [L,QSA]
RewriteCond %{REQUEST_URI} !(^/dev/zeroyear/$)
RewriteRule ^dev/zeroyear/([^/]+?)/?$ /dev/zeroyear/index.php?var1=$1 [L,QSA]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.