Mar*_*kum 16 php regex apache .htaccess mod-rewrite
我想在我的.htaccess文件中添加一些内容来隐藏.php我的php文件的文件扩展名,所以访问www.example.com/dir/somepage会向他们展示www.example.com/dir/somepage.php.
这有什么工作解决方案吗?我的网站使用HTTPS,如果这很重要的话.
这是我目前的.htaccess:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
ErrorDocument 404 /error/404.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
Run Code Online (Sandbox Code Playgroud)
anu*_*ava 42
在DOCUMENT_ROOT下的.htaccess中使用此代码:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f [NC]
RewriteRule ^ %{REQUEST_URI}.php [L]
Run Code Online (Sandbox Code Playgroud)
删除php扩展
您可以使用 /.htaccess 中的代码:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_FILENAME}.php [NC,L]
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,您将能够以 /file 的形式访问 /file.php
删除 html 扩展
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_FILENAME}.html [NC,L]
Run Code Online (Sandbox Code Playgroud)
注意:'RewriteEngine on' 指令应该在每个 htaccess 的顶部使用一次,所以如果你想组合这两条规则,只需从第二条规则中删除该行。您还可以删除您选择的任何其他扩展名,只需在代码中用它们替换 .php 即可。
访问愉快!