这是我的.htaccess代码,
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteCond %{REQUEST_URI} /view-([a-zA-Z0-9_-]+)/$
RewriteRule ^view-([a-zA-Z0-9._-]+)/$ post.php?id=$1
</IfModule>
,即post = .php文件中的id = $ 1 = my-first-&amp; -thread ++。
链接变为
http://site.com/view-my-first-&-thread++/
并给出错误404。
我希望我的链接是这样的:
http://site.com/view-my-first-thread/
这怎么可能?请帮忙
答案 0 :(得分:0)
您在RewriteRule
中使用的正则表达式与您的示例网址不匹配,因为它排除了+
和&
。有时,通过允许特定字符,您隐式排除了您可能想要的其他字符。
尝试更改规则以匹配除斜杠(/
)之外的任何内容:
RewriteRule ^view-([^/]+)/$` post.php?id=$1
答案 1 :(得分:0)
这里需要B
mod_rewrite
的标记。
RewriteRule ^view-([^/]+)/?$ post.php?id=$1 [L,QSA,NC,B]
这将重定向到http://site.com/view-my-first-&-thread++/
到http://site.com/post.php?id=my-first-&-thread++