我需要使用title和id动态重写url。我想动态制作网址
http://dev.example.com/beweb/iphone-8.html
而不是
http://dev.example.com/beweb/newsdetails.php?id=8&title=iphone
当我运行上面的网址时,我会根据需要进行动态调整,但会出现错误
" Not Found
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
The requested URL /beweb/iphone-8.html was not found on this server."
我使用了以下代码:
RewriteEngine On
RewriteCond %{THE_REQUEST} /beweb/newsdetails.php\?id=([^&\s]+)&title=([^&\s]+) [NC]
RewriteRule ^ /beweb/%2-%1\.html? [NC,R,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^%2-([^.]+)\.html$ /beweb/newsdetails.php?id=$1&title=$2 [QSA,L,NC]
请帮帮我。
答案 0 :(得分:0)
规则几乎是正确的。您只是错误配置了最后一个语句,该语句应为:
RewriteRule ^([^-]+)-([^.]+)\.html$ /beweb/newsdetails.php?id=$2&title=$1 [QSA,L,NC]
答案 1 :(得分:0)
使用这些行,您可以检查服务器上不是真实静态文件或目录的路径,如果是negetive,则处理文件名以便为您的用户提供服务:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^beweb/([a-z]+)\-([0-9]+).html$ /beweb/index.php?id=$2&title=$1 [QSA,L,NC]
QSA表示将查询字符串添加到新网址