mod_rewrite for url with?

时间:2013-11-21 22:46:18

标签: php apache .htaccess mod-rewrite

我在StackOverflow中找不到其他问题的答案.. mod_rewrites生成器失败所以我不知道该怎么做..

我有那个网址:http://example.com/?index&category=football

足球是php的动态生成器,所以有很多类别。 所以我想要这样的网址:http://example.com/football

如何用mod_rewrite做到这一点? 非常感谢你!

3 个答案:

答案 0 :(得分:1)

RewriteEngine on
    RewriteRule ^/([a-zA-Z0-9]+)$ /index.php?category=$1
    #RewriteRule ^/([a-zA-Z0-9]+)/$ /index.php?category=$1

答案 1 :(得分:0)

这会使网址http://example.com/football的工作方式与使用http://example.com/?index&category=football一样:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^/?([^/$]*) /?index&category=$1 [L]

第2行到第5行(从RewriteCond %{REQUEST_FILENAME} -sRewriteRule ^.*$ - [NC,L])是可选的:它们会将任何名为类别名称的现有文件(例如 football )直接提供(不使用 /?index& category = ... )。

答案 2 :(得分:0)

尝试:

RewriteEngine On

RewriteCond %{THE_REQUEST} \ /+\?index&category=([^&\ ]+)
RewriteRule ^ /%1? [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /?index&category=$1 [L,QSA]