我需要隐藏我的网页的扩展名,并且还希望让用户将链接放在两个(下部和上部)的情况下:
示例:
文件名是demo.php
www.example.com/demo www.example.com/DEMO www.example.com/Demo
在LAMP服务器中运行PHP,无法访问php.ini,只能访问.htaccess
Actualy即时通讯使用这样的文件:
RewriteEngine On
RewriteBase /
RewriteRule ^/(OUTSOURCING|outsourcing|Outsourcing)$ outsourcing.php [NC,L]
我发现了这个错误:
Not Found
The requested URL /outsourcing was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
答案 0 :(得分:2)
RewriteEngine On
RewriteBase /
www.example.com/DEMO www.example.com/Demo或www.example.com/DEMO/page2
RewriteRule ^/(DEMO|demo|Demo)/(.*)$ demo.php?=$1 [NC,L]
RewriteRule ^/(DEMO|demo|Demo)$ demo.php [NC,L]
RewriteRule ^/(D|d)emo$ demo.php [NC,L]
或将任何www.example.com/DeMo www.example.com/bob传递给demo.php
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ demo.php [NC,L]
您可能想要测试您是否允许.htaccess RewriteRule /*$ http://google.com [R][L]
答案 1 :(得分:1)
这是使用不区分大小写的方法
的好方法编辑:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ${lc:$1}.php [NC]
这样输入的任何内容都将被重定向到php文件。
编辑:这样你的js和css文件仍然可以运行
答案 2 :(得分:0)
RewriteRule ^/[Dd][Ee][Mm][Oo]/?(.*)$ demo.php [NC,L]
会将“演示”的任何大写重定向到demo.php
答案 3 :(得分:0)
首先在<VirtualHost>
部分或httpd.conf文件末尾添加此行(在.htaccess中启用lc函数供以后使用):
RewriteMap lc int:tolower
然后在.htaccess文件中有这些规则:
Options +FollowSymlinks -MultiViews
RewriteEngine on
RewriteCond %{THE_REQUEST} ^GET\s.+\.php [NC]
RewriteRule ^(.+)\.php$ /$1 [NE,R=301,L,NC]
RewriteCond %{REQUEST_URI} !\.php$ [NC]
RewriteCond ${lc:%{REQUEST_FILENAME}}.php -f
RewriteRule . ${lc:%{REQUEST_URI}}.php [L]
.htaccess中的第一条规则是通过将/index.php
设为/index
.htaccess中的第二条规则是通过降低URI来将/INDEX
的URI设置为/index.php
来执行内部重定向。假设你有文件名index.php实际存在。
这样您就可以随时编写没有.php
扩展名的网址。