Apache 正在重命名URL(.php文件)中的文件
我有一个名为filename-step1.php的文件,希望通过.htaccess将url改为domain.com/filename/step1 我当前的.htaccess文件如下所示: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/
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]