用 title 和 id 重写 URL 动态
Rewrite URL dynamic with title and id
我需要用标题和 ID 动态重写 url。我想使 URL 动态
http://dev.example.com/beweb/iphone-8.html
而不是
http://dev.example.com/beweb/newsdetails.php?id=8&title=iphone
当我 运行 以上 URL 时,它是我需要的动态生成的..但是出现错误
" 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=&title= [QSA,L,NC]
请帮帮我。
规则几乎是正确的。您只是错误配置了最后一条语句,它应该是:
RewriteRule ^([^-]+)-([^.]+)\.html$ /beweb/newsdetails.php?id=&title= [QSA,L,NC]
使用这些行,您可以检查服务器上不是真正的静态文件或目录的路径,然后如果有问题,则处理文件名以服务于您的用户:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^beweb/([a-z]+)\-([0-9]+).html$ /beweb/index.php?id=&title= [QSA,L,NC]
QSA表示将查询字符串添加到新的URL
我需要用标题和 ID 动态重写 url。我想使 URL 动态
http://dev.example.com/beweb/iphone-8.html
而不是
http://dev.example.com/beweb/newsdetails.php?id=8&title=iphone
当我 运行 以上 URL 时,它是我需要的动态生成的..但是出现错误
" 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=&title= [QSA,L,NC]
请帮帮我。
规则几乎是正确的。您只是错误配置了最后一条语句,它应该是:
RewriteRule ^([^-]+)-([^.]+)\.html$ /beweb/newsdetails.php?id=&title= [QSA,L,NC]
使用这些行,您可以检查服务器上不是真正的静态文件或目录的路径,然后如果有问题,则处理文件名以服务于您的用户:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^beweb/([a-z]+)\-([0-9]+).html$ /beweb/index.php?id=&title= [QSA,L,NC]
QSA表示将查询字符串添加到新的URL