SecFilterEngine Off
DirectorySlash Off
Options -Indexes
ErrorDocument 404 /not-found.php
ErrorDocument 403 /not-found.php
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^xyz.com.au$ [NC]
RewriteRule ^(.*)$ http://someurl.au/$1 [R=301,L]
# RewriteCond %{QUERY_STRING} ^.+$
# RewriteRule ^$ ? [R=301,L]
RewriteRule ^news_and_events.asp news-and-views? [NC,R=301,L]
RewriteRule ^detailapplication.asp products/applications? [NC,R=301,L]
RewriteRule ^detailproduct.asp products/products? [NC,R=301,L]
RewriteRule ^detailproduct.asp products/products? [NC,R=301,L]
RewriteRule ^products.asp products/products? [NC,R=301,L]
此代码在服务器上正常运行,但它无法在localhost上运行。请有人告诉我必要的变化。在那个url是我认为需要更改该url作为localhost,我已经在那里添加localhost但仍然无法正常工作请告诉我问题
答案 0 :(得分:0)
如果您为项目使用不同的文件夹,请在RewriteBase中添加文件夹名称,如下所示。
RewriteBase /YOUR_PROJECT_FOLDER/
还删除以下行。对于localhost来说没有必要。
RewriteCond %{HTTP_HOST} ^xyz.com.au$ [NC]
RewriteRule ^(.*)$ http://someurl.au/$1 [R=301,L]
答案 1 :(得分:0)
我建议打开重写日志,以便您可以看到实际发生的情况。
我不知道你正在使用什么版本的apache甚至操作系统,所以尝试将此添加到你的httpd.conf或该网站的虚拟主机定义,但不在.htaccess文件中
对于Apache 2.2 rewrite log Doc这样的
RewriteEngine On
RewriteLog "full/path/to/rewrite.log"
RewriteLogLevel 3
如果您使用的是Apache 2.4 rewrite log Doc,则语法已更改为此类
RewriteEngin On
RewriteLog "full/path/to/rewrite.log"
LogLevel alert rewrite:trace6
答案 2 :(得分:0)
首先尝试删除SecFilterEngine Off
,因为它需要默认情况下未安装的mod_security。
如果仍然无法检查你的httpd.conf。需要激活mod_rewrite。 See this answer.
如果它仍然无效,则AllowOverride可能设置为无。