我想这样做,以便当我输入http://website.com/5/sometitle时打开/displayvideo.php?id=5&title=sometitle,这当前使用以下代码
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/(.*)$ /displayvideo.php?id=$1&title=$2 [L]
但是我也想这样做,以便当我去http://website.com/5时,它会转到/displayvideo.php?id=5 我已经通过添加
尝试了这个RewriteRule ^(.*)$ /displayvideo.php?id=$1 [L]
然而,这只是一堆奇怪的废话,如无法打开实际文件,如/somefile.php,因为它会认为somefile.php应该是rewriterule的id标签
执行此操作也会导致其他重写规则失效,因为它会自动认为/displayvideo.php?id=$1是新规则的标记。
基本上,网站上的每个页面都会出现500内部服务器错误
任何人都知道如何解决这个问题? 感谢
答案 0 :(得分:1)
这应该这样做。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/(.+)$ /displayvideo.php?id=$1&title=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)$ /displayvideo.php?id=$1 [L]
答案 1 :(得分:0)
优化您的RegExp:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9]+)$ /displayvideo.php?id=$1 [L]
RewriteRule ^([0-9]+)/(.*)$ /displayvideo.php?id=$1&title=$2 [L]