Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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
Apache .htaccess在xamp中不工作_Apache_.htaccess_Mod Rewrite_Xampp - Fatal编程技术网

Apache .htaccess在xamp中不工作

Apache .htaccess在xamp中不工作,apache,.htaccess,mod-rewrite,xampp,Apache,.htaccess,Mod Rewrite,Xampp,我的localhost上有一个PHP项目,它正在运行一个XAMPP堆栈 我想从所有面向用户的URL中删除.php扩展名 我尝试在.htaccess文件中使用Apache的mod_rewrite: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^locations(/.*)?$ poet.php [L,NC] </IfModule> 重新启动发动机 重写基

我的
localhost
上有一个PHP项目,它正在运行一个XAMPP堆栈

我想从所有面向用户的URL中删除
.php
扩展名

我尝试在
.htaccess
文件中使用Apache的
mod_rewrite

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteRule ^locations(/.*)?$ poet.php [L,NC]
</IfModule>

重新启动发动机
重写基/
重写规则^locations(/.*)?$poter.php[L,NC]

但它“不起作用”。

尝试使用此代码解决您的问题

     <IfModule mod_rewrite.c>
           RewriteEngine On
           RewriteCond %{REQUEST_FILENAME}.php -f
           RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
     </IfModule>

重新启动发动机
RewriteCond%{REQUEST_FILENAME}.php-f
重写规则!*\。php$%{REQUEST_FILENAME}.php[QSA,L]

在项目目录中尝试以下规则

RewriteEngine On
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

将此代码放入.htaccess文件中

RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]

注意:如果您的项目文件夹不在根目录下,请不要忘记更改RewriteBase路径。

可能重复@Abhishek我在谷歌上看到过这篇文章,但这一步不起作用,所以最后我决定询问questionRewriteEngine关于RewriteRule^(.+)\.php$/$1[R,L]RewriteCond%{REQUEST_FILENAME}.php-f RewriteRule^(.*?/?$/$1.php[北卡罗来纳州,结束]当我使用这个时,我发现了404page@VivekMishra如果您遇到相关问题或其他没有帮助的材料,最好在问题中说明。这样人们会知道您尝试了什么,并且有人可能会发现差异。我还从我的http启用了AllowOverride。如果您的项目t文件夹不在根目录下。我无法理解这一点。这是我的第一个HTAccess。这意味着,如果您的项目位于htdocs文件夹的根目录下,则按原样使用上述代码,但如果您的项目不在htdocs的根目录下,则请指定指向项目文件夹的路径……例如,假设您的项目位于htdocs/projects/demoproject1内……那么RewriteBase路径将类似于RewriteBase/projects/demoproject1/
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]