簡體   English   中英

在帶有“帖子名稱”永久鏈接的子目錄中為Wordpress設置.htaccess

[英]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.

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