我正在尝试删除php扩展名以及在我的域中使用.htaccess文件隐藏子目录。但是,我对正则表达式的了解不多,我真的被困在这里。如果有人可以协助您,我们将不胜感激!
我要实现的目标是:
www.example.com/index.php到www.example.com/index
www.example.com/assets/php/company.php到www.example.com/company
Options +FollowSymLinks -MultiViews
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^assets/php/(.*)$ /$1 [L,NC,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
#To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
</IfModule>
目前,我可以成功地从URL中删除.php扩展名并实现http://www.example.com/company,但它会显示404 Not Found错误。我相信我缺少RewriteCond行,但是我不知道如何编写它。还是我需要/ assets / php /中的另一个htaccess文件?
如果有人可以协助您,将不胜感激!不过,感谢您的阅读。
干杯,
TY
您可以在根.htaccess中使用如下规则:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} /assets/php/([^.]+)\.php [NC]
RewriteRule ^ /%1 [L,NC,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/assets/php/$1\.php -f [NC]
RewriteRule ^([^.]+?)/?$ assets/php/$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^([^.]+?)/?$ $1.php [NC,L]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句