PHP/.htaccess:从url中删除PHP扩展
我使用.htaccess代码删除了我所有网页的.php扩展名。以下是我使用的代码:PHP/.htaccess:从url中删除PHP扩展,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我使用.htaccess代码删除了我所有网页的.php扩展名。以下是我使用的代码: RewriteEngine On RewriteCond /%{REQUEST_FILENAME}.php -f RewriteRule ^([a-zA-Z0-9_-\s]+)/$ /$1.php 它似乎不起作用。我想我错过了什么。当我键入www.mysite.com/about/以获取www.mysite.com/about.php时,它返回错误404(找不到页面)。谁能帮我弄点光吗 谢谢, Paul G.看
RewriteEngine On
RewriteCond /%{REQUEST_FILENAME}.php -f
RewriteRule ^([a-zA-Z0-9_-\s]+)/$ /$1.php
它似乎不起作用。我想我错过了什么。当我键入www.mysite.com/about/以获取www.mysite.com/about.php时,它返回错误404(找不到页面)。谁能帮我弄点光吗
谢谢,
Paul G.看起来你规则末尾的斜杠可能在那里,也可能不在那里。添加一个
?
使其成为可选的,因此mysite.com/about
和mysite.com/about/
都将匹配
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-\s]+)/?$ /$1.php
很难说这是导致你的问题的原因,还是其他原因造成的。
mysite.com/about.php
是否也会给您带来错误?规则末尾的斜杠可能在那里,也可能不在那里。添加一个?
使其成为可选的,因此mysite.com/about
和mysite.com/about/
都将匹配
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-\s]+)/?$ /$1.php
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
# If folder does not exist
RewriteCond %{REQUEST_FILENAME} !-d
# and file exist
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
# uncomment the below rule if you want the "/" to be required
# otherwise leave as is
# RewriteRule ^([^/]+)/$ $1.php [L]
# internally show the content of filename.php
RewriteRule ^([^/]+)/?$ $1.php [L]
很难说这是导致你的问题的原因,还是其他原因造成的。mysite.com/about.php
是否也会给您一个错误
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
# If folder does not exist
RewriteCond %{REQUEST_FILENAME} !-d
# and file exist
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
# uncomment the below rule if you want the "/" to be required
# otherwise leave as is
# RewriteRule ^([^/]+)/$ $1.php [L]
# internally show the content of filename.php
RewriteRule ^([^/]+)/?$ $1.php [L]
上述规则将:
/
之前的内容(如果文件名中有)http://domain.com/about/
http://domain.com/about
http://domain.com/contact/
http://domain.com/contact
如果需要,可以删除?
,就像注释规则一样,使其只接受以/
结尾的URL
http://domain.com/about/
http://domain.com/contact/
现在,这些是上述工作的重要步骤:
.htaccess
,例如/home/yourcount/public\u html/.htaccess
-MultiViews
.htaccess
就是about.php
文件/
之前的内容(如果文件名中有)http://domain.com/about/
http://domain.com/about
http://domain.com/contact/
http://domain.com/contact
如果需要,可以删除?
,就像注释规则一样,使其只接受以/
结尾的URL
http://domain.com/about/
http://domain.com/contact/
现在,这些是上述工作的重要步骤:
.htaccess
,例如/home/yourcount/public\u html/.htaccess
-MultiViews
.htaccess
就是about.php
文件它不带尾随的斜杠“/”,一旦我添加了斜杠,它会加载页面而不带样式,当导航到另一个页面时,它会返回404错误,url会返回到www.mysite.com/about/services。@netizen0911这是因为你使用了css、图像和javascript的相对路径,不要使用
css/my.css
您需要像这样使用完整的URLhttp://domain.com/css/my.css
在您的HTML上。当使用相对URL(如css/my.css
时,它将假定该文件位于您的案例中假定为http://domain.com/about/css/my.css
这就是它失败的原因。是的,我想出来了,但是如果从末尾有斜杠“/”的地址导航,会出现404错误吗?(也就是说,当我拥有www.mysite.com/about/up并点击contact.php链接时,它会给出www.mysite.com/about/contact/,而不是www.mysite.com/contact/)@netizen0911同样的原因,你使用相对路径作为你的URL,你需要使用完整路径
会给你一个结果,
会给你一个与
不同的结果,图像、CSS、JavaScript和任何其他资源也是如此。最好有一个你从未使用过的浏览器来处理这个问题,如果浏览器a被缓存,你可以通过浏览器B确认,对于多级文件夹,规则是不同的,RewriteRule^(+?)/?$$1.php[L]
只需将上面的RewriteRule
替换为这个,并保留2RewriteCond
。它不带尾随斜杠“/”,一旦添加斜杠,它将加载页面而不带样式,当导航到另一个页面时,它返回404错误,而url指向www.mysite.com/about/services。@网友0911这是因为你使用的是css、图像和javascript的相对路径,而不是使用css/my.css
你需要像这样使用完整的urlhttp://domain.com/css/my.css
在您的HTML上。当使用相对URL(如css/my.css
时,它将假定该文件位于您的案例中假定为http://domain.com/about/css/my.css
这就是它失败的原因。是的,我想出来了,但是如果从末尾有斜杠“/”的地址导航,会出现404错误吗?(也就是说,当我拥有www.mysite.com/about/up并点击contact.php链接时,它会给出www.mysite.com/about/contact/,而不是www.mysite.com/contact/)@netizen0911同样的原因,你使用相对路径作为你的URL,你需要使用完整路径
会给你一个结果,
会给你一个与
不同的结果,图像、CSS、JavaScript和任何其他资源也是如此。最好有一个你从未使用过的浏览器来处理这个问题,如果浏览器a被缓存,你可以通过浏览器B确认,对于多级文件夹,规则是不同的,RewriteRule^(+?)/?$$1.php[L]
只需将上面的RewriteRule
替换为这个,并保留2RewriteCond
。