代码之家  ›  专栏  ›  技术社区  ›  ewizard

Wordpress/htaccess-允许访问子目录

  •  0
  • ewizard  · 技术社区  · 6 年前

    我有一个子目录( app )我想访问我的 wordpress 地点。我看了这里:

    https://wordpress.stackexchange.com/questions/20152/cannot-access-non-wordpress-subdirectories-as-wordpress-overrides-them-with-a-40

    我试过解决办法,但都没用。

    我还尝试添加一个单独的 .htaccess 文件到 如下所示的子目录:

    DirectoryIndex index.php index.html index.htm
    Options +Indexes
    

    但似乎没有帮助:

    主要 .htaccess访问

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/app/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
    </IfModule>
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    </IfModule>
    
    # END WordPress
    

    我得到一个 404 错误。

    我做错什么了?如果我在iPhone上查看这个网站,那么清除手机上的safari历史记录是否足以刷新数据,以便它识别新的.htaccess?谢谢。

    更新

    <Directory "/home/eamondev/public_html/subconscious/">
        Options All
        AllowOverride All
        Require all granted
    </Directory>
    

    到一个.conf文件 Include 艾德进来了 httpd.conf ,重新启动了apache,但没有帮助。

    <Directory "/home/eamondev/public_html/subconscious/">
        AllowOverride All
    </Directory>
    

    但没用,我不确定我是否只需要 AllowOverride All -不管怎样,这似乎都无济于事。

    更新

    包括 httpd.conf文件 ,我试过:

    <VirtualHost 162.241.180.99:80>
        ServerName eamondev.com
        DocumentRoot /home/eamondev/public_html
    
        <Directory "/home/eamondev/public_html/">
          AllowOverride All
        </Directory>
    </VirtualHost>
    

    但没用。

    有什么理由我不应该只是在我的服务器上建立另一个子域和主机的文件在那里,以便达到他们不会与我的wordpress网站冲突?

    2 回复  |  直到 6 年前
        1
  •  0
  •   ewizard    6 年前

        2
  •  -1
  •   raju_odi    6 年前

    使用下面的代码,我认为它会工作。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    
    # Map http://www.example.com to /app.
    RewriteRule ^$ /app/ [L]
    
    # Map http://www.example.com/x to /app/x unless there is a x in the web root.
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/app/
    RewriteRule ^(.*)$ /app/$1
    
    # Add trailing slash to directories within app
    # This does not expose the internal URL.
    RewriteCond %{SCRIPT_FILENAME} -d
    RewriteRule ^app/(.*[^/])$ http://www.example.com/$1/ [R=301]
    </IfModule>