【问题标题】:Path Issue PHP, Apache, .htaccess or Other?路径问题 PHP、Apache、.htaccess 还是其他?
【发布时间】:2016-02-24 16:18:27
【问题描述】:

我接管了一个 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}

【问题讨论】:

    标签: php apache .htaccess mod-rewrite path


    【解决方案1】:

    这是因为您的相对 URI 的基数已更改。原来,当页面为/_wrapper..php?page=profile时,base为/,浏览器正确填写了/base的相关链接。但是当浏览器转到像/profile 这样的页面时,基础突然变为/profile/,它会尝试将其附加到所有相对 URL 的前面,因此它们都不会加载。

    您可以将链接设为绝对链接,也可以更改页面标题中的 URI 基础(在 &lt;head&gt; &lt;/head&gt; 标记之间):

    <base href="/">
    

    【讨论】:

    • 我明白了。我想我仍然对为什么将文件夹从一台服务器复制到另一台服务器时会有所不同感到困惑。有没有办法在一个地方而不是所有页面上进行更改?
    【解决方案2】:

    我能够通过找到为应用程序设置 $BASE_URL 的代码并为在我的本地计算机上运行的 xxxxxx.dev 服务器添加案例来解决此问题。

    【讨论】:

      猜你喜欢
      • 2011-10-17
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-07
      相关资源
      最近更新 更多