簡體   English   中英

.htaccess mod_rewrite錯誤

[英].htaccess mod_rewrite error

這是public_html中的htaccess:

# Use PHP5.4 as default
AddHandler application/x-httpd-php54 .php
Options -Multiviews
Options -Indexes
# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch

RewriteEngine on 

RewriteCond %{REQUEST_URI} !api\\dispatch\.php$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^api/.* api/dispatch.php [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

這是public_html / sites /中htaccess的代碼

# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks -MultiViews
Options +SymLinksIfOwnerMatch -MultiViews
RewriteEngine On

RewriteCond %{HTTP_HOST} ^([^/.]+)\.webznap\.com$ [NC]
RewriteCond %1 !^(www|ftp|mail)$ [NC]
RewriteCond %{REQUEST_URI} !^/sites [NC]
RewriteRule ^ http://webznap.com/sites/%1/ [L]

這是public_html / sites / luis /的htaccess

RewriteEngine On

ErrorDocument 400 /page/error
ErrorDocument 401 /page/error
ErrorDocument 403 /page/error
ErrorDocument 404 /page/error
ErrorDocument 500 /page/error

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

謝謝您的幫助,我非常感謝!

試試看:

# Use PHP5.4 as default
AddHandler application/x-httpd-php54 .php

# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options -Multiviews -Indexes +SymLinksIfOwnerMatch

RewriteEngine on

ErrorDocument 400 /page/error
ErrorDocument 401 /page/error
ErrorDocument 403 /page/error
ErrorDocument 404 /page/error
ErrorDocument 500 /page/error

RewriteCond %{HTTP_HOST} ^([^/.]+)\.webznap\.com$ [NC]
RewriteCond %1 !^(www|ftp|mail)$ [NC]
RewriteCond %{REQUEST_URI} !^/sites [NC]
RewriteRule ^ /sites/%1%{REQUEST_URI} [L]

RewriteCond %{REQUEST_URI} !api\\dispatch\.php$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^api/.* api/dispatch.php [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

旁注:應刪除public_html/sites/.htaccesspublic_html/sites/dynamic_subdoamin/.htaccess

並確保:

anything_you_try.domain.com

存在於:

anything_your_try.domain.com/sites/anything_your_try

否則它將失敗。


它能做什么?

第一行捕獲子域名(如果有):

RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$ [NC]

此行確保子域不是www,ftp或mail:

RewriteCond %1 !^(www|ftp|mail)$ [NC]

此行驗證URL路徑不是以/sites開頭:

RewriteCond %{REQUEST_URI} !^/sites [NC]

無論URL是什么,此行都將在內部重定向:

RewriteRule ^ /sites/%1%{REQUEST_URI} [L]

因此,例如,URL:

http://luis.domain.com/hello

它將顯示以下內容:

http://luis.domain.com/sites/luis/hello

無需更改URL。

暫無
暫無

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

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