我成功使用mod_rewrite抓取网址并将其作为参数传递,但仅当网址的前缀至少为一个字符时才会传递。
.htaccess文件位于www.site.com/content
目录中例如,以下Rewrite成功:(site.com/content/-seo-friendly-url)
RewriteEngine on
RewriteRule ^(.*)$ ./get_content.php?url=$1
但此示例不起作用:(site.com/content/seo-friendly-url)
RewriteRule ^([a-zA-Z0-9-])$ ./get_content.php?url=$1
我收到500内部服务器错误
这会得到404 Not Found
RewriteRule ^(.*)$ get_content.php?url=$1
这会传递' get_content'作为get_content.php的($ 1)参数,没有错误
{{1}}
目标是将url传递给get_content.php,不带前缀。
例如,
www.site.com/content/seo-friendly-url
应该改写为
www.site.com/content/get_content.php?url=seo-friendly-url
答案 0 :(得分:0)
试试这个。我没有测试过这段代码,但我很确定它可以帮到你
RewriteEngine On
RewriteRule ^ content / get_content.php \?url \ = seo-friendly-url $ / content / seo-friendly-url [L]
如果这不起作用,我建议使用本网站。它帮助我进行了大量的重写
答案 1 :(得分:0)
尝试此规则,
RewriteRule ^([\w-]+)$ get_content.php?url=$1