Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 - Fatal编程技术网

Php 在.htaccess中自动重写URL

Php 在.htaccess中自动重写URL,php,apache,Php,Apache,起初,我使用IIS服务器进行PHP,所以我对Apache(Windows平台)是新手。我在一些与URL重写有关的谜题中。在.htaccess文件中,我使用下面的代码重写URL Options +FollowSymlinks RewriteEngine on RewriteRule ^(.*)\.aspx$ $1.php [nc] 现在,如果我浏览扩展名为.aspx的.php页面,它工作得很好。如果我浏览 www.example.com/guwahati.php=>www.example.com

起初,我使用IIS服务器进行PHP,所以我对Apache(Windows平台)是新手。我在一些与URL重写有关的谜题中。在.htaccess文件中,我使用下面的代码重写URL

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.aspx$ $1.php [nc]
现在,如果我浏览扩展名为.aspx的.php页面,它工作得很好。如果我浏览

www.example.com/guwahati.php=>www.example.com/guwahati.aspx(两个URL都有效)。

但是我想要自动的。就像我键入www.example.com/guwahati.php一样,它会自动转换为www.example.com/guwahati.aspx,可能吗?此外,URL重写在我的本地主机上不起作用。谁能帮帮我吗

但是我想要自动的。就像我键入www.example.com/guwahati.php,它会自动转换为www.example.com/guwahati.aspx,可能吗

这是可能的,但通过使用重定向头,而不是URL重写。实际上,您可以进行URL重写,重定向到单个文件,用aspx替换目标扩展名,然后重定向到它。您可能需要启用
mod_rewrite
,它才能工作

但是我想要自动的。就像我键入www.example.com/guwahati.php,它会自动转换为www.example.com/guwahati.aspx,可能吗


这是可能的,但通过使用重定向头,而不是URL重写。实际上,您可以进行URL重写,重定向到单个文件,用aspx替换目标扩展名,然后重定向到它。您可能需要启用
mod_rewrite
才能使其正常工作。

谢谢,至少我想到了这个主意。但是你能告诉我为什么url重写在我的本地主机上不起作用吗?@Indian Girl:你检查过它是否启用了吗?我已经运行了phpinfo()命令,但在任何地方都没有找到mod_rewrite,只找到mod_ssl。在哪里可以打开?@Indian Girl:检查你的
httpd.conf
中的“LoadModule rewrite\u modules/mod\u rewrite.so”一行,确保开头没有#,否则该行就是注释。重新启动apache以使更改生效。谢谢,至少我知道了。但是你能告诉我为什么url重写在我的本地主机上不起作用吗?@Indian Girl:你检查过它是否启用了吗?我已经运行了phpinfo()命令,但在任何地方都没有找到mod_rewrite,只找到mod_ssl。在哪里可以打开?@Indian Girl:检查你的
httpd.conf
中的“LoadModule rewrite\u modules/mod\u rewrite.so”一行,确保开头没有#,否则该行就是注释。重新启动apache以使更改生效。您的示例将传入的*.aspx更改为*.php(因为您的实际脚本可能是php)。如果您想将传入的.php更改为.aspx,只需交换aspx和php即可。然而,你可能不能同时做这两件事,因为它会先做一件,然后再做另一件,可能会让你陷入一个循环。另外,决定它是否工作——你说“它工作正常”,然后你说“不工作”——它们在两个不同的服务器上吗?如果是这样,则“localhost”配置不正确。您的示例将传入的*.aspx更改为*.php(因为您的实际脚本可能是php)。如果您想将传入的.php更改为.aspx,只需交换aspx和php即可。然而,你可能不能同时做这两件事,因为它会先做一件,然后再做另一件,可能会让你陷入一个循环。另外,决定它是否工作——你说“它工作正常”,然后你说“不工作”——它们在两个不同的服务器上吗?如果是,则“localhost”配置不正确。