簡體   English   中英

該URL如何在Apache中映射?

[英]How is this URL being mapped in Apache?

我已經接管了一個舊開發人員剛剛消失的項目,而我的第一個自我分配任務是能夠在EC2主機上復制整個堆棧。

在原來的原始主機上,我可以訪問一個URL,即http://www.example.com/users/login/ (我可以加上斜杠,並且可以正常登錄到登錄頁面)。

查看/var/www/[example.com]/中的源代碼-我可以找到一個看起來像是從中渲染HTML頁面的section / users / login.php。

我的輔助EC2主機中有相同的代碼,但是我不費心使用虛擬主機,我只是將其放在/ var / www / html /中(而不是/var/www/[example.com]/ ),但我得到了404。

我應該在哪里尋找將http://www.example.com/users/login/指向/sections/users/login.php的映射?

我對RewriteRule的東西不是很熟悉,但是在倉庫和httpd.conf中只有2個.htaccess文件,我在任何地方都看不到與“ sections”有關的內容,所以我不確定在哪里查找。

我的根目錄中的.htaccess是:

php_value post_max_size 1024M
php_value upload_max_filesize 1024M
php_value memory_limit 1024M
php_value max_input_time 1800
php_value max_execution_time 1900
php_value session.gc_maxlifetime 7200

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^(.*)example.mobi [NC]
    RewriteRule ^(.*)$ http://%1example.com/$1 [R=301,L]

    RewriteCond %{HTTP_HOST} ^(.*)example.us [NC]
    RewriteRule ^(.*)$ http://%1example.com/$1 [R=301,L]

    RewriteBase /

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

    RewriteRule ^(.*)\.vcf vcf.php [L]

    RewriteRule ^shared/(.*)$ /$1 [L,NC,R]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

Options -Indexes

首先,您可以粘貼htaccess文件的內容,以便我們可以看到您已有的規則。 我相信你應該有這樣的東西

RewriteRule ^([^\.]+)$ $1.php [NC,L]

此外,某些托管服務提供商(包括我所知的AWS EC2)將要求在apache配置中啟用MultiViews。

您還可以檢查.htaccess文件是否已解析和使用(可以啟用重寫調試級別,也可以僅在.htaccess文件中添加一些偽代碼,然后等待錯誤:)。 如果apache未加載您的.htaccess文件,請檢查AllowOverride和Require設置(您應該具有AllowOverride All和Require All Granted)。

  • 請記住,配置更改將要求您重新加載配置或重新啟動apache服務。

在這種情況下,似乎RewriteRule正在將所有請求重寫到index.php文件。 這在框架中很常見,但是您無需框架即可完成。 在index.php文件中,它正在解析查詢字符串並將其重新映射到適當的PHP文件。

應該注意的是,只有在請求中找不到匹配的文件或目錄時,它才會重寫為index.php文件-這是此規則的作用:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM