我有一个问题,我正在为一个特定的应用程序开发Web服务。上周,我将备份从服务器1转移到服务器2,从那一刻起,我的.htaccess就无法再工作了。
我的Web服务的url是:http://apps.holtesdesign.nl/inholland/apiv0/
此url工作正常,可加载错误报告模块: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是否正常工作。。。
我希望你们能帮助我!
干杯,
Jelmer
这将修复它:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1'.php
如果它不起作用,请更正您的Wamp服务器的设置:
- 左键单击WAMP图标
- Apache
- Apache模块
- 左键单击rewrite_module
这将隐藏尾部斜杠并在root&子目录。
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 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文件中的网站根文件夹中使用此代码:示例
offline-wamp''www''YourWebDir
在线-public_html/
重要提示:如果不起作用,请更正Wamp的设置服务器:1)左键单击WAMP图标2)Apache 3)Apache模块4)左键单击重写模块
试试这个。。它有效!:)
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}'.php -f
RewriteRule ^(.*)$ $1.php