这是我的htaccess文件
RewriteEngine on
rewriterule ^([a-zA-Z0-9]+) /vixer.php?v=$1 [QSA]
主要问题是,当我输入www.example.com/vix_25时,它会转到404
当我输入另一个url / vix25时它起作用..我真的不明白什么是差异以及为什么第一个不起作用。
你能帮助我吗?感谢答案 0 :(得分:2)
您需要在模式中添加下划线,以便它可以与“请求的URI”中的“_”匹配
([a-zA-Z0-9_]+)
试试这个:
RewriteEngine on
rewriterule ^([a-zA-Z0-9_]+)$ /vixer.php?v=$1 [QSA,L]
答案 1 :(得分:1)
我会让你的规则更健壮。告诉apache,如果它不是真正的文件而不是真正的目录,那么重写它。这也可以防止404。我也改变了正则表达式,以便它更好地匹配而不是单独添加匹配。此外,我会确保MultiViews关闭。
Options -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
rewriterule ^([^/]+)/?$ /vixer.php?v=$1 [QSA,L]