使用 .htaccess 从 URL 中删除"/php/"子目录



我一直在尝试在我正在构建的网站上实现以下重写/重定向,但我很难在网上找到正确的答案。

我想重写

http://www.example.com/php/someFile.php

收件人:

example.com/someFile

使用.htaccess根文件中的以下代码,我已经成功地实现了大部分期望的结果,但我需要帮助删除php子目录:

RewriteEngine on
# remove www from url
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]
# redirect /file.php to /file
RewriteCond %{THE_REQUEST} s/([^.]+).php [NC]
RewriteRule ^ /%1 [NE,L,R]
# internally map /file to /file.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)/?$ /$1.php  [L]

任何帮助都将不胜感激。

在您的站点根目录中使用这种方式。htaccess:

RewriteEngine on
# remove www from url
RewriteCond %{HTTP_HOST} ^www.(example.com)$ [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
# redirect /php/file.php to /file
RewriteCond %{THE_REQUEST} s/+(?:php/)?([^.]+).php [NC]
RewriteRule ^ /%1 [NE,L,R=301]
# internally map /file to /php/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/php/$1.php -f
RewriteRule ^(.+?)/?$ php/$1.php [L]

请确保在清除浏览器缓存后进行测试。

对于您显示的示例,您可以尝试以下操作吗。请确保在测试URL之前清除浏览器缓存。

RewriteEngine on
# remove www from url
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^ http://example.com%{REQUEST_URI} [L,R=301,NE]
# redirect /file.php to /file
RewriteCond %{THE_REQUEST} s/php/file.phps [NC]
RewriteRule ^ file [R=301]
RewriteRule ^ php/file.php [L]

相关内容

  • 没有找到相关文章

最新更新