web-dev-qa-db-ja.com

.htaccessとWordPress:RewriteRuleからフォルダーを除外する

この.htaccessファイルはWordPressにあります。/public_html /(Webルート)にあります。書き換えエンジンからフォルダー(csNewsAd)を除外する必要があります。私はこれをSOで同様の別の質問に基づいて試しましたが、まったく機能しませんでした。

AddHandler x-httpd-php5 .php
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/csNewsAd($|/) - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

助言がありますか?

より多くのデータ

パスワード保護のために/ csNewsAd内に別の.htaccessがあります。


AuthName "Clasificados"
AuthType "basic"
AuthUserFile /home/ig000192/public_html/csNewsAd/.passwd
Require valid-user
RewriteCond %{REQUEST_URI} !^/(csNewsAd|csNewsAd/.*)$ 

の代わりに

RewriteRule ^/csNewsAd($|/) - [L] 
42
GmonC

ルートの.htaccessファイルに以下の行を配置します。

ErrorDocument 401 default

まったく同じ問題があり、これは私のために働いた。リダイレクトが機能しないのは問題ではありません。問題は、401(Authorization Required)エラーがnog定義されているため、「ポップアップ」が表示されないことです。

18
Jory Hogeveen

同じ問題を抱えていて、ここで私の問題の答えを見つけました: http://kb.siteground.com/article/How_to_exclude_a_folder_from_Wordpress_permalinks.html

-サイトから

WordPress書き換えルールからサブフォルダーを除外するには、.htaccessファイルを編集し、以下の太線を変更する必要があります。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /index.php [L] # Original line
RewriteRule ./ /index.php [L] # New line
</IfModule>
# END WordPress
5
user1389907

.htaccessは、その下のすべてのディレクトリに影響を与えるため、cshtsAdに.htaccessを必要な書き換えディレクティブと共に配置すると、ルートファイルよりも優先されます。

3
markratledge

.htaccessファイルでmod_rewriteを使用している場合は、パターンでローカルパスプレフィックスなしでURLパスを指定するだけです。先頭に/がない場合(ドキュメントルート/にいるとき):

RewriteRule ^csNewsAd($|/) - [L]
2
Gumbo

これはグーグルで一番の結果であり、間違った答えです。

正解はこれを追加することですbefore the Wordpress=ディレクティブ。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
</IfModule>
1
Jeff Karney

GoDaddy WordPressサイト。私のインストールにはweb.configファイルがあったため、書き換えルールを追加しました。MVC.netを実行できる/ ApiDataパスが必要でした。 AJAX呼び出しのアプリケーション(仮想ディレクトリ)。

<system.webServer>
    <!-- ... -->
    <rewrite>
        <rules>
            <rule name="apidata" stopProcessing="true">
                <match url="apidata"/>
            </rule>
            <rule name="wordpress" patternSyntax="Wildcard">
                <match url="*"/>
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                </conditions>
                <action type="Rewrite" url="index.php"/>
            </rule>

        </rules>
    </rewrite>
</system.webServer>
1
Pete

私はGoDaddyをホスティングしていますが、この問題はkilled meです。パスワードで保護されたサブディレクトリで、public_htmlの.htaccessオプションが競合するという問題が何度もありました。

.htaccessファイルに約100万のさまざまな変更を試みたため、別のアカウントを購入することになり、この問題を回避しました。完全性と明確性のために、現在、セットアップとソリューションを共有しています。 (とにかく、アカウントはとにかく価値があったので、大したことはありません。)

他の回答の組み合わせのように見える場合、それはそうです。そのすべてが機能するのにかかりました。

ディレクトリ構造:

-otherfiles
---public_html
---.htaccess
-----subfolder
---.htaccess

サブフォルダーの.htaccessにはパスワード保護機能があるため、次のようになります。

AuthType Basic
AuthName "Attendance"
AuthUserFile "/home/user/.htpasswds/public_html/attendance/passwd"
require valid-user

Public_html .htaccessには元々これがあり、機能していません(すべてを飲み込んでリダイレクトしたため、FatFreeFrameworkまたはCodeIgniterが処理していました)。

RewriteEngine On
RewriteCond $1 !^(index.php|resources|subfolder|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

この問題を解決するために、public_html .htaccessファイルに2行追加しました。そして、あなたはどこを推測していないのか、ファイル全体をもう一度表示します:

RewriteEngine On
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^/(subfolder|subfolder/.*)$
ErrorDocument 401 default
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

私は最初にこれをRailsで始めました。 Rails .htaccessは次の2行です。

# RewriteCond %{REQUEST_URI} ^/notrails.*
# RewriteRule .* – [L]

私が最終的に彼らの例に従ったとき、それは働きました。

画像、javascript、スタイルシート、css、images-global、js-global(など)を除外したいので、上記を変更しました。

RewriteCond %{REQUEST_URI} ^(images|javascripts|stylesheets|css|images-globa|js-global|js).*
RewriteRule .* – [L]

そして、それは私が必要とする方法で機能しました。

Javascript、stylesheet、imagesのフォルダがたくさんあるということについてはお話ししません…。

しかし、これにより、「エラー」ファイルの痛みが軽減されます。誰かが存在しない画像ファイルを追加した場合、私の派遣はそれを処理する必要はありません。

1
brad tittle

私は私の2つのサイトで同様の問題を抱えていました。ここで読んだコメントはうまくいきませんでしたが、ついにこのコードが機能するようになりました。

<IfModule mod_rewrite.c>
  RewriteEngine on

  # stuff to let through (ignore)
  RewriteCond %{REQUEST_URI} "/folder1/" 
  RewriteRule (.*) $1 [L]

https://www.drupal.org/node/30334 から取得

0
Bible Arena

これを試してみてください

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/(gadget)/(.*) /gadget/$2 [R]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
0
Preetam Purbia

私はその古い投稿を知っていますが、それでも私を助けました。 RewriteRulesのいくつかのブロックの追加の問題がありました。

##
## White listed folders
##
RewriteCond %{REQUEST_URI} !^/(phplist|phplist/.*)$
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} !/.well-known/*
RewriteCond %{REQUEST_FILENAME} !/storage/app/uploads/.*
RewriteCond %{REQUEST_FILENAME} !/storage/app/media/.*
...
RewriteCond %{REQUEST_FILENAME} !/modules/.*/(assets|resources)/.*
RewriteRule !^index.php index.php [L,NC]

##
## Block all PHP files, except index
##
RewriteCond %{REQUEST_URI} !^/(phplist|phplist/.*)$
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} \.php$
RewriteRule !^index.php index.php [L,NC]

##
## Standard routes
##
RewriteCond %{REQUEST_URI} !^/(phplist|phplist/.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

すべてのブロックの前にRewriteCondを追加する必要がありました...

0
Johanness

次のようなものを追加できます。

RewriteCond %{REQUEST_URI} !^/csNewsAd 

ただし、csNewsAdが実際にディレクトリ(フォルダ)である場合、最初の場所で書き換えられるべきではないため、これは必要ありません。

RewriteCond %{REQUEST_FILENAME} !-d

あなたとそのフォルダ、権限、または(実際に)別の.htaccessの間に他に何も置かれていないと確信していますか?

0
futtta

.htaccessのフローでこの行がどこに行くかが重要であることは注目に値します。

こちらをご覧ください: http://tanyanam.com/technology/wordpress-exclude-directory-from-url-rewrite-with-htaccess -行はWordPressもの、それ以降は動作しません。

ロブ

0
rob_was_taken

あなたはすでにこれを除外していると確信していますが、同じ問題のためにここに来たので、あなたと共有したいと思いました:私の場合、問題は実際にはアクセス許可にありました-明らかに、アクセスできないフォルダ、除外は無視されていました。

0
TheLegs