我正在尝试了解如何使用.htaccess文件进行网址重写。
到目前为止,我发现的更容易理解的信息是here,我正在努力使其适应我自己的需要,但到目前为止还没有成功。
我有这个网址:
http://www.example.com/contenido.php?id=19
我现在想把它变成:
http://www.example.com/contenido/19
我尝试过:.htaccess文件:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^contenido/([0-9]+) http://www.example.com/contenido.php?id=$1 [NC]
当我尝试清理网址时,我收到“找不到服务器”错误。
非常感谢任何见解。
请注意,我的Apache服务器中RewriteEngine
已启用。
答案 0 :(得分:1)
当您重写目录的所有内容时,没有必要测试页面是否存在。
您可以使用:
Options +FollowSymLinks
RewriteEngine On
# To externally redirect contenido.php?id=nnn to contenido/nnn
RewriteCond %{THE_REQUEST} \s/+contenido\.php\?id=([^\s&]+) [NC]
RewriteRule ^ /contenido/%1 [R=301,L,NE]
# To internally rewrite contenido/nnn to contenido.php?id=nnn
RewriteRule ^contenido/(\d+/?)?$ contenido.php?id=$1 [NC,L]
答案 1 :(得分:0)
在this tutorial的一点帮助之后,我找到了解决方案。
以防万一我会在这里发布消息:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^contenido/(\d+)*$ ./contenido.php?id=$1