Php 如何修复.htaccess问题
我想做的很简单: 我想从我正在使用以下代码的文件中删除扩展名.php,该文件正在运行Php 如何修复.htaccess问题,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我想做的很简单: 我想从我正在使用以下代码的文件中删除扩展名.php,该文件正在运行 #for hiding.php extension RewriteEngine On RewriteCond %{REQUEST_FILENAME}.php -f RewriteCond %{REQUEST_URI} !/$ RewriteRule ^(.*)$ $1\.php ############################-------- END ---------#################
#for hiding.php extension
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1\.php
############################-------- END ---------########################
我还想在屏幕上显示一个$\u GET参数,该参数的链接应该是this link
localhost/123,表示localhost/somepage.php?para=123
为此,我使用了以下代码,这些代码也可以正常工作
#for parameter Display
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)$ somepage.php?para=$1
############################-------- END ---------########################
问题:如果没有将这些代码一起写入同一个“.htaccess”文件中,它们工作正常。但是当一起编写时,以及当我必须使用localhost/login访问登录页面时。htaccess将登录名视为获取参数值。有解决此问题的方法吗?请尝试以下代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.+)$ /$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ somepage.php?para=$1 [L,QSA]
尝试在每个RewriteRule后面添加[L],[L]意味着找到匹配项时停止。请给我一个例子。当我使用localhost/login时,它在屏幕上显示
login
,而不是重定向到login.php页面。不,它不会重定向,而是从/login.php
加载内容。这个.htaccess的位置是什么?它与login.php
在同一目录中吗?