mod_rewrite重写引擎无法正常工作

时间:2015-07-24 20:26:47

标签: php apache .htaccess mod-rewrite

我有以下链接,我想用modrewrite更改它。在我的电脑里,我有最新的xampp。

我有以下链接:http://localhost/site/index.php?site=blog&action=watch&blogID=1&title=my_new_site

想要更改为:http://localhost/site/blog/1/my_new_site

或者,如果你有sollution,我可能会使用http://localhost/site/blog/my_new_site

我有这段代码:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?site=$1


RewriteRule ^/blog/(.*)/(.*)/?$ index.php?site=blog&action=watch&blogID=$1&title=$2

编辑:

我改变了我的规则,但仍然无法正常工作

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?site=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ index.php?site=blog&action=watch&blogID=$1&title=$2 [L]

仍然无法执行以下操作:http://localhost/site/blog/1/my_new_site

我收到以下错误:在此服务器上找不到请求的网址。

1 个答案:

答案 0 :(得分:1)

/site/中尝试此.htaccess:

ErrorDocument 404 default
RewriteEngine on
RewriteBase /site/

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^([^/]+)$ index.php?site=$1 [L,QSA]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?site=$1&action=watch&blogID=$2&title=$3 [L,QSA]