簡體   English   中英

如何在子目錄中為Wordpress配置永久鏈接(.htaccess)

[英]How to configure permalinks (.htaccess) for Wordpress in subdirectory

問題:我無法使用Wordpress創建友好的永久鏈接。

我們正在運行Apache。 我正在嘗試修改.htaccess,但沒有成功。

這是我的.htaccess文件的原始內容:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

我發現了一個有類似問題的人,但對他來說, /blog位於嵌套子目錄中。 看到這個帖子

這是他的解決方案:

<VirtualHost *:80>
    DocumentRoot /home/user/
    ServerName mydomain.com
    ServerAlias www.mydomain.com

    <Directory "/home/user">
      Options FollowSymLinks
      AllowOverride none
      Order allow,deny
      Allow from all
    </Directory>

    <Directory "/home/user/blog">
      RewriteEngine On
      RewriteBase /blog/
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . index.php [L]

      Options FollowSymLinks
      Order allow,deny
      Allow from all
    </Directory>
</VirtualHost>

我認為我的答案在他的解決方案中,但是我不知道如何針對我的特定情況修改此代碼段。 我的Wordpress在domain.com/blog目錄中。

您必須對主機說,允許其他文件(如.htaccess )覆蓋規則。

虛擬主機

<VirtualHost *:80>
    DocumentRoot /home/user/
    ServerName mydomain.com
    ServerAlias www.mydomain.com

    <Directory "/home/user">
      Options FollowSymLinks
      AllowOverride none
      Order allow,deny
      Allow from all
    </Directory>

    <Directory "/home/user/blog">
      Options FollowSymLinks
      ## ADD THESE!
      AllowOverride All
      Order allow,deny
      Allow from all
    </Directory>
</VirtualHost>

否則,您可以刪除完整的博客指令( <Directory "/home/user/blog"> ),並將AllowOverride none設置為AllowOverride All

<VirtualHost *:80>
    DocumentRoot /home/user/
    ServerName mydomain.com
    ServerAlias www.mydomain.com

    <Directory "/home/user">
      Options FollowSymLinks
      # Change this!
      AllowOverride All
      Order allow,deny
      Allow from all
    </Directory>
</VirtualHost>

比起您可以在.htaccess/home/user/blog/.htaccess )上進行重寫:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /blog/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /blog/index.php [L]
</IfModule>

這是我網站上的一個小例子:

<VirtualHost *:80>
    ServerAdmin support@adi-code.de
    ServerName adi-code.de
    ServerAlias adi-code.de www.adi-code.de *.adi-code.de
    DocumentRoot /opt/adi

    <Directory /opt/adi/>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog /var/log/apache2/adicode_error.log
    LogLevel warn
    CustomLog /var/log/apache2/adicode_access.log combined
</VirtualHost>

暫無
暫無

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

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