我正在重写我的网址以摆脱.php
扩展(希望也能获取变量,因为我得到的所有帮助都很棒,但仍然不起作用。
这是我的代码:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php[\s?] [NC]
RewriteRule ^ %1 [R=301,L]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+?)/?$ $1.php [NC,L]
现在,当我使用此代码时,它会将 .php 取出,但随后错误显示:
Not Found
The requested URL /index.php was not found on this server.
同时,如果我取出该代码,它工作正常,但有.php
扩大
我使用这段代码.htaccess去除.php扩展和重定向.php扩展页面到非.php扩展页面:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(wp-admin)($|/) - [L] # You don't want to mess with WordPress
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule .* $0.php
# browser requests PHP
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]
# check to see if the request is for a PHP file:
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]
</IfModule>
当上面的代码使用在.htaccess,您可以访问PHP没有扩展名的页面以及当用户访问带有扩展名的页面时.php扩展名,他/她将被重定向到没有扩展名的页面。
例子 :
http://example.com/page.php http://example.com/page.php被重定向到http://example.com/page http://example.com/page
http://example.com/page http://example.com/page将与以下相同http://example.com/page.php http://example.com/page.php
当您在内部访问带有扩展名的 PHP 文件时,不会有任何问题:
<?
include("page.php");
?>
将毫无问题地工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)