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
Php 使用.htaccess自动重写URL?_Php_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Php 使用.htaccess自动重写URL?

Php 使用.htaccess自动重写URL?,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我正在尝试使用.htaccess自动将URL重写到虚拟目录 我的规则正在运行,但不是自动运行的,因此,例如,我在根目录中有一个名为login.php的文件,我想重写到一个虚拟目录,使其类似于example.com/login/,而不是example.com/login.php,下面的规则适用于此目的 RewriteOptions inherit RewriteEngine On RewriteBase / RewriteRule ^login/$ ./login.php [L,NC] 但是,

我正在尝试使用
.htaccess
自动将URL重写到虚拟目录

我的规则正在运行,但不是自动运行的,因此,例如,我在根目录中有一个名为
login.php
的文件,我想重写到一个虚拟目录,使其类似于
example.com/login/
,而不是
example.com/login.php
,下面的规则适用于此目的

RewriteOptions inherit
RewriteEngine On
RewriteBase /

RewriteRule ^login/$ ./login.php [L,NC]

但是,这不会自动重写
login.php
文件。我需要每当用户请求login.php文件时,规则自动将用户重定向到
example.com/login/
,并且仍然提供相同的内容。如何实现这一点?

您需要重定向:

ewriteOptions inherit
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} /login\.php[\s?] [NC]
RewriteRule ^ /login/ [R=301,L]

RewriteRule login/$ ./login.php [L,NC]