好的,我们有一组特定的重写,由于我们编程的文件结构,我们在很多站点上都使用了重写。到现在为止这从来都不是个问题。
例如,重写:
RewriteRule ^$ Pages/news.php 它不是指向http://www.domain.com/wedding-venues-and-caterers-news/Pages/news.php,而是重定向到/path/to/file/public/wedding-venues-and-caterers-news/Pages/news.php,它是404-ing (/path/to/file是实际路径)。
如果有人能弄清楚为什么会发生这样的事情,或者指出正确的方向,我将永远感激。
我在一个子文件夹中运行我所有的脚本和文件,根文件夹中还有另一个.htaccess文件,我在底部编辑了它,但是它似乎不包含任何可能干扰的内容。
如果您需要任何关于服务器的进一步信息,请告诉我!
编辑-以下是我根据要求重写的所有内容。
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteRule ^$ Pages/news.php
RewriteRule ^images/([0-9]+)/([0-9]+)/(0|1)/(.*).jpg?$ Classes/Image/timthumb.php?src=http://www.domain.com/wedding-venues-and-caterers-news/images/$4.jpg&h=$1&w=$2&zc=$3
RewriteRule ^([A-Za-z0-9\-]+)/([0-9]+)/([0-9]+)(/)?$ Pages/archives.php?cat_id=$2&page=$3 [NC,L]
RewriteRule ^archives/mon/([0-9]+)/yr/([0-9]+)/([0-9]+)$ Pages/archives.php?mon=$1&yr=$2&page=$3 [NC,L]
RewriteRule ^([A-Za-z0-9\-]+)/([0-9]+)(/)?$ Pages/archives.php?cat_id=$2 [NC,L]
RewriteRule ^archives/mon/([0-9]+)/yr/([0-9]+)(/)?$ Pages/archives.php?mon=$1&yr=$2 [NC,L]
RewriteRule ^([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)/([0-9]+)(/)?$ Pages/article.php?art_id=$3 [NC,L]
RewriteRule ^wedding-venues-catering-rss(/)?$ rss/rss.php [NC,L]
RewriteRule ^Page-Error(/)?$ Pages/errorPage.php [NC,L]
ErrorDocument 404 http://www.domain.com/wedding-venues-and-caterers-news/Page-Error
ErrorDocument 401 http://www.domain.com/wedding-venues-and-caterers-news/Page-Error
ErrorDocument 403 http://www.domain.com/wedding-venues-and-caterers-news/Page-Error
ErrorDocument 404 http://www.domain.com/wedding-venues-and-caterers-news/Page-Error
ErrorDocument 500 http://www.domain.com/wedding-venues-and-caterers-news/Page-Error我还试图用绝对URL引用重写,这当然有效,但它们只是重定向,而不是像您可能预期的那样重写。
编辑-这是根目录中的另一个.htaccess文件,它是他们现有站点的一部分。
#Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
<IfModule mod_rewrite.c>
RewriteEngine on
redirect 301 /Cavendish.htm http://www.domain.com/
redirect 301 /grange.htm http://www.domain.com/
redirect 301 /restaurant/index.html http://www.domain.com/
redirect 301 /news/Save-money-by-booking-wedding-venues-in-Middlesex-at-off-peak-times.asp http://www.domain.com/
redirect 301 /news/default.asp http://www.domain.com/编辑-我想这可能是相关的。
重写中的404错误显示了这个路径-
/l/i/domain.com/public/wedding-venues-and-caterers-news/Pages/news.php但是..。如果我编辑news.php并请求SCRIPT_FILENAME,它会给我路径。
/services/webpages/l/i/domain.com/public/wedding-venues-and-caterers-news/Pages/news.php我的猜测是,某些东西正在影响默认路径。
此外,我在根级别尝试过基本重写,但这些也是404。
发布于 2011-07-27 11:19:06
这个问题终于得到了解决。
由于服务器是由BT业务托管的,我决定给他们发电子邮件,看看他们是否能帮上忙。
一名男子回答说,他已经登录到服务器,并修改了.htaccess,现在它运行良好。
他只是在重写的URL前面添加了子文件夹。
IE:-
RewriteRule ^$ Pages/news.php 变成:-
RewriteRule ^$ wedding-venues-and-caterers-news/Pages/news.php当.htaccess文件位于该目录中时,我仍然不确定为什么需要子目录,我猜想这与其服务器设置有关。
https://stackoverflow.com/questions/6815329
复制相似问题