![](/img/trans.png)
[英]How to configure permalinks (.htaccess) for Wordpress in subdirectory
[英]Setting .htaccess for Wordpress in a subdirectory with 'Post name' permalinks
我正在嘗試設置Wordpress安裝,其中Wordpress在子目錄中,但是始終從URL重寫子目錄。
我一直在嘗試着其他有關此操作的問題/帖子,但是似乎沒有其他人的解決方案對我有用,而且很多時候他們只是在不刪除子目錄的情況下加載頁面。 URL,對我來說至關重要。
我還希望有一個與本地服務器( http://example-site.com
)相同的本地解決方案( http://localhost/wordpress
)。 但是,我將從本地角度解釋問題:
我的根文件夾的結構如下:
.htaccess
wp /* contains all wordpress core files */
wp-content /* custom wp-content folder, which is set to be pointed at in my wp-config */
wp-config.php
因此,如果我們忽略.htaccess,則可以通過訪問http://localhost/wordpress/wp
來訪問該站點,而目標是通過僅訪問http://localhost/wordpress
來對其進行訪問。
這是使用以下.htaccess實現的:
RedirectMatch 302 /wp/$ /wordpress/$1
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ wp/$1
RewriteRule ^(/)?$ wp/index.php [L]
</IfModule>
但是,此時,我的wordpress安裝被設置為使用默認的永久鏈接,該鏈接會創建類似http://localhost/wordpress?p=12
。 我需要將其設置為不同的永久鏈接類型,該類型使用URL段而不是查詢參數,例如http://localhost/wordpress/hello-world
。 更改該設置后,我將無法再使用該.htaccess訪問其他頁面(盡管主頁仍然可以正常工作)
我嘗試使用此.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.php$ -
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/wp/$1 [L]
</IfModule>
現在,這將導致子頁面加載,盡管主頁不再加載,某些資產文件也不再加載,例如http://localhost/wordpress/wp-includes/css/admin-bar.min.css
我似乎找不到能使所有功能同時工作的解決方案!
我還要提及的是,我對編寫.htaccess文件了解甚少,因此,如果有人要回答這個問題,請解釋一下我是個白痴之類的事情,否則我可能無法理解您。
我正在考慮將域重定向到相對文件夾,或者在共享主機上將域設置為指向子文件夾。 我也在考慮您要將htaccess添加到根目錄。 這是來自您的情況的官方法典代碼。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?YourDomain.com$
RewriteRule ^(/)?$ blog [L]
用網站地址和目錄替換yourdomain.com和博客。 從文件中刪除其他所有內容。 然后轉到設置>永久鏈接並將永久鏈接更改為所需的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.