繁体   English   中英

使用.htaccess重写URL以隐藏PHP扩展名

[英]Rewrite URL with .htaccess to hide PHP extension

我有一个问题,我正在为特定应用开发Web服务。 上周,我将备份从server1转移到server2,因为那一刻我的.htaccess文件不再可用。

我的网络服务的网址是: http : //apps.holtesdesign.nl/inholland/apiv0/

此网址可以正常工作,以加载bugreport模块: http : //apps.holtesdesign.nl/inholland/apiv0/bugreport.php

但该URL应该是: http : //apps.holtesdesign.nl/inholland/apiv0/bugreport

当您打开最后一个URL时,您会看到它将导致内部服务器错误。 你知道这怎么可能吗?

我的.htaccess如下所示:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

该服务器正在CentOS上运行,并且我已经检查了mod_rewrite是否正在运行...

我希望你能帮助我!

干杯,

耶尔默

这将解决它:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1\.php

如果不起作用,请更正Wamp Server的设置:

  1. 左键单击WAMP图标
  2. 阿帕奇
  3. Apache模块
  4. 左键单击rewrite_module。

这将在末尾隐藏斜杠,并在根目录和子目录中隐藏.php。

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]

试试这个..它有效! :)

Options +FollowSymLinks
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

对我而言的工作理念:

# Options is required by Many HostSevice
Options +MultiViews

RewriteEngine on

# For .php & .html URL's:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]

在您的网站的.htaccess文件的Root文件夹中使用此代码:示例

离线-wamp \\ www \\ YourWebDir

在线-public_html /

重要说明:如果不起作用,请更正Wamp Server的设置:1)左键单击WAMP图标2)Apache 3)Apache模块4)左键rewrite_module

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM