路径问题PHP、Apache、.htaccess或其他


Path Issue PHP, Apache, .htaccess or Other?

我接管了一个web应用程序,目前正试图为我的本地开发环境设置它。我迁移了数据库,除了下面的.htaccess文件中定义的一些路径外,一切似乎都正常。特别是,当我点击与"项目"、"职业"和其他对应的链接时,我会得到"无法连接到服务器"。此外,如果我在Safari的Web Developer工具中查看该网站,我还会看到许多CSS和JPG文件被标记为红色,即找不到它们的路径。

现在,我在本地开发环境中设置了虚拟主机。起初,我认为这可能是问题所在,但当我尝试在浏览器中直接访问某个资产时,它会找到并打开它。

这里可能有什么问题?实时网站运行5.5.14 PHP,我有5.5.27。尝试降级有意义吗?还是问题完全出在其他地方?

Options +Indexes -MultiViews
RewriteEngine  on
RewriteBase    /
<IfModule mod_php5.c>
   php_value upload_max_filesize 50M
   php_value post_max_size 50M
</IfModule>
<IfModule mod_headers.c>
  Header set Access-Control-Allow-Origin http://blog.xxxxxx.com
  Header append Access-Control-Allow-Headers X-Requested-With
</IfModule>

RewriteRule    ^$ _wrapper.php?page=index [QSA,L]
RewriteRule    ^signup$ _wrapper.php?page=signup [QSA,L]
RewriteRule    ^verify/(.*)/(.*)$ _wrapper.php?page=verify&email=$1&email_verification_code_hash=$2 [QSA,L]
RewriteRule    ^lost_password$ _wrapper.php?page=lost_password [QSA,L]
RewriteRule    ^password_reset/(.*)$ _wrapper.php?page=password_reset&password_reset_code=$1 [QSA,L]
RewriteRule    ^password_reset_action$ _wrapper.php?page=password_reset_action [QSA,L]
RewriteRule    ^create$ _wrapper.php?page=album_create [QSA,L]
RewriteRule    ^login$ _wrapper.php?page=login [QSA,L]
RewriteRule    ^gift-cards$ _wrapper.php?page=gift_cards/digital [QSA,L]
RewriteRule    ^gift-cards/purchased/([0-9a-f-]+)$ _wrapper.php?page=gift_cards/purchased&guid=$1 [QSA,L]
RewriteRule    ^gift-card/details/([0-9a-f-]+)$ _wrapper.php?page=gift_cards/details&guid=$1 [QSA,L]
RewriteRule    ^faq$ _wrapper.php?page=faq [QSA,L]
RewriteRule    ^approach$ _wrapper.php?page=approach [QSA,L]
RewriteRule    ^projects$ _wrapper.php?page=projects [QSA,L]
RewriteRule    ^career$ _wrapper.php?page=career [QSA,L]
RewriteRule    ^career/([0-9]+)$ career/success [QSA,R]
RewriteRule    ^career/success$ _wrapper.php?page=career_success [QSA,L]
RewriteRule    ^blog$ _wrapper.php?page=blog [QSA,L]
RewriteRule    ^historian$ _wrapper.php?page=historian [QSA,L]
RewriteRule    ^terms$ _wrapper.php?page=terms [QSA,L]
RewriteRule    ^privacy$ _wrapper.php?page=privacy [QSA,L]
RewriteRule    ^help$ _wrapper.php?page=help [QSA,L]
RewriteRule    ^fb_albums$ _wrapper.php?page=fb_albums [QSA,L]
RewriteRule    ^fb_album/(.*)$ _wrapper.php?page=fb_album&album_id=$1 [QSA,L]
RewriteRule    ^profile$ _wrapper.php?page=profile [QSA,L]
RewriteRule    ^profile/edit$ _wrapper.php?page=profile_edit [QSA,L]
RewriteRule    ^album/([0-9]+)$ _wrapper.php?page=album&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/photos$ _wrapper.php?page=album_photos&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/review$ _wrapper.php?page=album_review_photos&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/people$ _wrapper.php?page=album_people&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/create_account$ _wrapper.php?page=album_create_account&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/details$ _wrapper.php?page=album_details&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/view_details$ _wrapper.php?page=album_view_details&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/shipping$ _wrapper.php?page=album_shipping&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/shipping_flash$ _wrapper.php?page=album_shipping_flashdrive&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/checkout$ _wrapper.php?page=album_checkout&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/purchased$ _wrapper.php?page=album_purchased&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/survey$ _wrapper.php?page=album_survey&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/proof$ _wrapper.php?page=album_proof&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/proof_title$ _wrapper.php?page=album_proof_title&album_id=$1 [QSA,L]
RewriteRule    ^album/([0-9]+)/proof/([0-9]+)$ _wrapper.php?page=album_proof_page&album_id=$1&proof_page_id=$2 [QSA,L]
RewriteRule    ^album$ / [R]
RewriteRule    ^dropbox$ _wrapper.php?page=dropbox [QSA,L]
RewriteRule    ^instagram$ _wrapper.php?page=instagram [QSA,L]
RewriteRule    ^instagram_success$ _wrapper.php?page=instagram_success [QSA,L]
RewriteRule    ^maker/album/([0-9]+)$ _wrapper.php?page=maker/maker_album&album_id=$1 [QSA,L]
RewriteRule    ^maker/album/([0-9]+)/proof$ _wrapper.php?page=album_proof&album_id=$1&maker=1 [QSA,L]
RewriteRule    ^maker/proof/([0-9]+)$ _wrapper.php?page=admin/proof&proof_id=$1&maker=1 [QSA,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^xxx.xxxxxxx.com [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^xxxxxxx.com [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

这是因为您的相对URI的基已更改。最初,当页面为/_wrapper..php?page=profile时,基础为/,并且浏览器正确地填充与/基础的相对链接。但是,当浏览器转到像/profile这样的页面时,基础突然变成/profile/,它试图将其附加在所有相关URL之前,因此没有加载它们。

您可以使链接成为绝对链接,也可以更改页面标题中的URI基(在<head> </head>标签之间):

<base href="/">

我找到了为应用程序设置$BASE_URL的代码,并添加了在本地计算机上运行的xxxxxx.dev服务器的案例,从而解决了这个问题。