htaccess RewriteRule不起作用

时间:2015-02-25 13:47:59

标签: php apache .htaccess mod-rewrite

我的第一个问题是希望找到解决问题的正确答案。

这是:

我尝试将http://mysite.it/home.php?pagina=ciao转换为http://mysite.it/ciao

我把.htaccess放进去了:

RewriteEngine On
RewriteRule ^home.php?(.*)$ $1

它告诉我:http://mysite.it/?pagina=ciao

我知道RewriteRule中有问题,但我不明白如何在home.php?pagina=之后选择ciao,我在PHP页面上$get= @$_GET ['pagina'];

我在建议中表示感谢,并希望解决这个问题。

2 个答案:

答案 0 :(得分:1)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} /home\.php\?pagina=([^\s&]+) [NC]
RewriteRule ^ %1? [R=302,L,NE]

RewriteCond %{THE_REQUEST} /(home)\.php\s [NC]
RewriteRule ^ %1 [R=302,L]

RewriteRule ^(home)/?$ $1.php [L,NC]

# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/?$ home.php?pagina=$1 [L,QSA]

答案 1 :(得分:0)

我相信你正在寻找的是:

RewriteEngine On
RewriteRule ^([A-Za-z]+)$ /home.php?pagina=$1

我希望你不要这样做:

require_once($get);

在那段代码之后,因为那将是非常危险的......