Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/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
Apache 正在重命名URL(.php文件)中的文件_Apache_.htaccess_Mod Rewrite_Url Rewriting_Friendly Url - Fatal编程技术网

Apache 正在重命名URL(.php文件)中的文件

Apache 正在重命名URL(.php文件)中的文件,apache,.htaccess,mod-rewrite,url-rewriting,friendly-url,Apache,.htaccess,Mod Rewrite,Url Rewriting,Friendly Url,我有一个名为filename-step1.php的文件,希望通过.htaccess将url改为domain.com/filename/step1 我当前的.htaccess文件如下所示: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] 目前,这可以很好地从url中删除.php标记。只需修复目录。您可以添加重写规则重定向到$1/$2.php 因此,filename/

我有一个名为filename-step1.php的文件,希望通过.htaccess将url改为domain.com/filename/step1

我当前的.htaccess文件如下所示:

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

目前,这可以很好地从url中删除.php标记。只需修复目录。

您可以添加重写规则重定向到$1/$2.php


因此,filename/step1将触发filename-step1.php文件。

我在这里给出两种解决方案,请在.htaccess文件中一次尝试一种。对于您展示的样品,请您尝试以下作为一般规则

RewriteEngine ON
RewriteCond %{HTTP_HOST} domain\.com [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/(.*)/?$ $1-$2.php [NC,L]
或者,如果您正在查找特定的url文件名/step1,请尝试以下操作

RewriteEngine ON
RewriteCond %{HTTP_HOST} domain\.com [NC]
RewriteRule ^(filename)/(step1)/?$ $1-$2.php [NC,L]

欢迎使用SO,请将您的.htaccess规则文件添加到您的问题中。@RavinderSingh13谢谢!我已经添加了它。这对于删除.php标记非常有效-这不会删除.php扩展,而是添加了它。您可能已经在请求锚中删除了它。
RewriteEngine ON
RewriteCond %{HTTP_HOST} domain\.com [NC]
RewriteRule ^(filename)/(step1)/?$ $1-$2.php [NC,L]