0

我从另一个开发人员那里继承了一个 PHP 站点,但无法完全弄清楚出了什么问题。我怀疑某处有某种重写规则,但我不确定在哪里寻找(或具体寻找什么......)

我已经安装了 MAMP,它工作正常。我有几个站点在 MAMP 目录中运行,没有任何问题。

当我将此站点放入并尝试运行页面时,我得到的页面没有 CSS、JavaSCript 或图像。当我“右键单击”图像并在新选项卡中打开它时,找不到图像,因为浏览器会尝试在目录中上一层到 MAMP 目录,而不是查看站点根目录。

指向其他页面的链接也是如此,它们都试图进入 MAMP htdocs 目录。

例如,在 htdocs 中,我的站点的根文件夹带有索引页:'htdocs/mysite.com/index.php'

页面上有指向另一个页面的链接<li class="nav_company"><a href="/company/index.php" title="Company">Company</a>

单击“公司”会导致浏览器转到 htdocs 文件夹并查找“/company/index.php”,这当然不存在。

我去哪里寻找这件事的罪魁祸首?是否有一个术语或什么我可以搜索站点文件?如果我只知道要寻找什么,我正在使用 Dreamweaver 和冷利用查找和替换工具...

编辑这是站点根文件夹中的(已清理的).htaccess 文件

Options +FollowSymLinks 
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sitename\.com
RewriteRule (.*) http://www.sitename.com/$1 [R=301,L] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.html\ HTTP/ 
RewriteRule ^(([^/]+/)*)index\.html$ http://www.sitename.com/$1 [R=301,L] 

Redirect 301 /products/ http://www.sitename.com/plastic-handles/
Redirect 301 /plastic/index.html http://www.sitename.com/plastic/plastic.html
Redirect 301 /applicator/index.html http://www.sitename.com/applicator/applicators.html
Redirect 301 /company/index.html http://www.sitename.com/company/about-us.html
Redirect 301 /contact/index.html http://www.sitename.com/contact/contact-us.html
Redirect 301 /news/index.html http://www.sitename.com/news/news.html
Redirect 301 /trade/index.html http://www.sitename.com/trade/tradeshows.html

提前致谢。

4

1 回答 1

0

您的资产和链接似乎都指向根目录,因此 /contact/index.php 将查看http://localhost/contact/index.php而不是http://localhost/mysite.com/contact/index.php

查看设置虚拟主机以指向新站点目录。

否则,将所有链接和资产更改为完整 URL,例如http://localhost/mysite.com/contact/index.php

希望这可以帮助

编辑:这是设置虚拟主机http://sawmac.com/mamp/virtual/的指南

编辑 2:响应您的编辑,当您单击链接或服务器查找将在 htdocs/ 中查找的资产时,.htaccess 不会产生影响。它不会再进一步​​,因此不会到达您的 .htaccess。

于 2013-01-24T21:55:32.657 回答