Phi*_*ipp 2 html php .htaccess
我想在浏览器中删除我的网站页面的 .php 和 .html 扩展名。我在网上找到了这段代码,将其添加到 .htaccess 文件中:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php`
Run Code Online (Sandbox Code Playgroud)
但是,如果有一个名为“home.php”的 php 文件,同时有一个名为“home”的目录,则该方法将不再起作用。我想我可能需要添加类似的东西
Options All -Indexes -MultiViews
Run Code Online (Sandbox Code Playgroud)
但我喜欢这个,它也不起作用。那么我怎样才能实现这一目标呢?
当请求没有与目录同名时,您可以给予文件优先级/,以及删除两者php & html并确定首先检查哪个文件,如下所示:
DirectorySlash Off
RewriteEngine on
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.(php|html)[\s?/] [NC]
RewriteRule ^ /%1%2 [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*) /$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*) /$1.html [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\/$
RewriteRule ^(.*) %{REQUEST_URI}/ [L,R=302]
Run Code Online (Sandbox Code Playgroud)
因此,通过上面的代码,扩展将被删除,然后将首先检查是否有 php 文件与此匹配,然后是 html,最后是否有目录。
因此,仅的请求/home将首先检查名为 home 的 php 是否存在,然后检查 home 目录,但请求/home/about将直接转到约内部主目录。
清除浏览器缓存然后测试一下,如果可以的话,改成302永久301重定向
| 归档时间: |
|
| 查看次数: |
1188 次 |
| 最近记录: |