Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何卸下';。php';从URL扩展?_Php_.htaccess_Url_File Extension - Fatal编程技术网

如何卸下';。php';从URL扩展?

如何卸下';。php';从URL扩展?,php,.htaccess,url,file-extension,Php,.htaccess,Url,File Extension,这是PHP文件的位置: ts1.WEBSITENAMEHERE.biz/cp/ .htaccess文件也在此文件夹中。 我想从“FILENAME.php”中删除“.php” 这是我当前的“.htaccess”文件: Options +FollowSymlinks RewriteEngine on RewriteBase /cp RewriteRule ^(.*)/$ $1.php 但它不起作用。为什么会这样?在DocumentRoot目录中创建一个.htaccess文件。 RewriteEn

这是PHP文件的位置:

ts1.WEBSITENAMEHERE.biz/cp/

.htaccess文件也在此文件夹中。 我想从“FILENAME.php”中删除“.php”

这是我当前的“.htaccess”文件:

Options +FollowSymlinks
RewriteEngine on 
RewriteBase /cp
RewriteRule ^(.*)/$ $1.php

但它不起作用。为什么会这样?

在DocumentRoot目录中创建一个.htaccess文件。
RewriteEngine on
RewriteBase /cp/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !\.php$
RewriteRule .* $0.php [L]
在该文件中添加以下代码

##############
RewriteEngine On
RewriteCond %{REQUEST_URI} !^(.*)\.(.*)$
RewriteRule ^(.*)$ %{REQUEST_URI}.php [R]
#############
应启用mod_rewrite以使其正常工作

    Options +FollowSymlinks
    RewriteEngine on 
    RewriteBase /cp
    RewriteRule ^(.*) $1.php

我使用这个检查器:

它会导致无限的重写循环,它会在
filename.php
上附加
.php
,所以最后是
filename.php.php
。@Wh1T3h4Ck5:实际上不是,它甚至会将
.php
附加到
filename.php.php
获取
filename.php.php.php
,并且永远不会到达end@zerkms... 嗯,不太确定,没有测试,但我认为它将执行
^(.*)
模式,然后转到
$1.php
部分。也许你是对的,但这肯定不会从文件名中删除
.php
。@Wh1T3h4Ck5:“由于可能的配置错误,请求超出了10个内部重定向的限制。如有必要,请使用'LimitInternalRecursion'增加限制。使用'LogLevel debug'获取回溯。”
mod_rewrite
execution循环重写url,只要每个迭代循环开始和结束时的url不同。在这种情况下-它们是,所以-这是无限循环:-)如果您无法使任何.htaccess规则工作,请确保检查站点根文件夹的设置,并确保AllowOverride设置为“全部”而不是“无”(或者AllowOverride缺失)。这通常在httpd.conf中,但如果您有多个站点,它也可以在vhosts.conf中。我猜这将在您的案例中起作用
RewriteRule^(.*)\.php$$1
。这是在重写索引目录以返回错误。例如:/cp/.php我想要:/cp/@Aaron Walker:
RewriteCond%{REQUEST_FILENAME}-d
谢谢虫族!这帮了大忙。