作为参数传递的mod_rewrite seo友好url仅适用于url上的前缀

时间:2016-09-03 04:37:07

标签: php regex apache .htaccess mod-rewrite

我成功使用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

2 个答案:

答案 0 :(得分:0)

试试这个。我没有测试过这段代码,但我很确定它可以帮到你

RewriteEngine On

RewriteRule ^ content / get_content.php \?url \ = seo-friendly-url $ / content / seo-friendly-url [L]

如果这不起作用,我建议使用本网站。它帮助我进行了大量的重写

Click this link!

答案 1 :(得分:0)

尝试此规则,

RewriteRule ^([\w-]+)$ get_content.php?url=$1