htaccess 重写规则不起作用
htaccess RewriteRule not work
我的第一个问题希望能找到我问题的正确答案。
这里是:
我尝试将 http://mysite.it/home.php?pagina=ciao
转换为 http://mysite.it/ciao
我在我的 .htaccess
里面放了这个:
RewriteEngine On
RewriteRule ^home.php?(.*)$
它告诉我:http://mysite.it/?pagina=ciao
我知道 RewriteRule 有问题,但我不明白如何仅在 home.php?pagina=
之后选择 ciao
,我的 PHP 页面上有这个 $get= @$_GET ['pagina'];
谢谢你的建议,希望能解决这个问题。
我相信你要找的是:
RewriteEngine On
RewriteRule ^([A-Za-z]+)$ /home.php?pagina=
我希望你没有做 :
require_once($get);
在该代码之后,因为那将是非常危险的...
您可以在 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)/?$ .php [L,NC]
# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/?$ home.php?pagina= [L,QSA]
我的第一个问题希望能找到我问题的正确答案。
这里是:
我尝试将 http://mysite.it/home.php?pagina=ciao
转换为 http://mysite.it/ciao
我在我的 .htaccess
里面放了这个:
RewriteEngine On
RewriteRule ^home.php?(.*)$
它告诉我:http://mysite.it/?pagina=ciao
我知道 RewriteRule 有问题,但我不明白如何仅在 home.php?pagina=
之后选择 ciao
,我的 PHP 页面上有这个 $get= @$_GET ['pagina'];
谢谢你的建议,希望能解决这个问题。
我相信你要找的是:
RewriteEngine On
RewriteRule ^([A-Za-z]+)$ /home.php?pagina=
我希望你没有做 :
require_once($get);
在该代码之后,因为那将是非常危险的...
您可以在 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)/?$ .php [L,NC]
# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/?$ home.php?pagina= [L,QSA]