Php 多个ModRewrite-.htaccess

Php 多个ModRewrite-.htaccess,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我正在试着重写两个mod。让我解释一下 -我需要一个重写,如果没有文件或目录存在,重定向到一个用户页面我已经做过了。 -接下来,我想删除.php文件的扩展名 我已经做了第一个,我只是不知道如何做第二个 我的代码已经: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule

我正在试着重写两个mod。让我解释一下


-我需要一个重写,如果没有文件或目录存在,重定向到一个用户页面我已经做过了。 -接下来,我想删除.php文件的扩展名

我已经做了第一个,我只是不知道如何做第二个


我的代码已经:

RewriteEngine On


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.*)$ users.php?name=$1 [QSA,L]

所以我需要的是,我只需要删除.php扩展名并保持当前的重写工作。

删除.php扩展名:

RewriteEngine On
# turn on the mod_rewrite engine

RewriteCond %{REQUEST_FILENAME}.php -f
# IF the request filename with .php extension is a file which exists
RewriteCond %{REQUEST_URI} !/$
# AND the request is not for a directory
RewriteRule (.*) $1\.php [L]
# redirect to the php script with the requested filename
只需指出:


删除.php扩展名:

RewriteEngine On
# turn on the mod_rewrite engine

RewriteCond %{REQUEST_FILENAME}.php -f
# IF the request filename with .php extension is a file which exists
RewriteCond %{REQUEST_URI} !/$
# AND the request is not for a directory
RewriteRule (.*) $1\.php [L]
# redirect to the php script with the requested filename
只需指出:


这应该是您的完整权限。htaccess:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

## redirect to a userpage
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ users.php?name=$1 [QSA,L]

这应该是您的完整访问权限。htaccess:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

## redirect to a userpage
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ users.php?name=$1 [QSA,L]

对不起,我以为我说得更清楚了。我需要两者,而不仅仅是删除.php扩展名。如果您愿意在公开之前尝试使用.htaccess文件。我发现一个有用的文档是:这应该可以解决任何其他问题。好吧,看起来不错。谢谢。@Jordan提供的链接解决了什么问题吗?对不起,没有,因为我不知道如何做更多的if语句。很难解释…对不起,我以为我说得更清楚了。我需要两者,而不仅仅是删除.php扩展名。如果您愿意在公开之前尝试使用.htaccess文件。我发现一个有用的文档是:这应该可以解决任何其他问题。好吧,看起来不错。谢谢。@Jordan提供的链接解决了什么问题吗?对不起,没有,因为我不知道如何做更多的if语句。很难解释……我想你什么都不用做。只是不要在请求中包含php扩展,您的规则已经将所有不存在的内容重定向到
users.php
。如果您需要根据请求中的参数映射到资源,请给出一些示例。我认为您无需执行任何操作。只是不要在请求中包含php扩展,您的规则已经将所有不存在的内容重定向到
users.php
。如果您需要根据请求中的参数映射到资源,请给出一些示例。非常有效,谢谢!:不客气,很高兴知道它成功了。非常成功,谢谢!:不客气,很高兴知道它成功了。