فهرست مقاله
وقتی یک وبسایت وردپرس در آپاچی مستقر میشود، از یک فایل .htaccess برای تعیین قوانین بازنویسی استفاده میشود.
با این حال، گاهی اوقات وقتی برنامههای دیگری در حال اجرا هستند، مانند CWP custom subdomain folder directory paths که فایل vhosts را ویرایش میکنند ، لازم است که پوشههای دارای استثنای redirect 301 را حذف کنید تا قوانین شبه استاتیک وردپرس را دور بزنید.
روش زیر یکی از روش های ممکن است.
فایل htaccess را برای اضافه کردن قانون پوشه پوشه حذف کنید

اگر میخواهید کاربران را به طور خودکار به زیردامنه بدون دامنه سطح بالای www هدایت کنید ، باید یک قانون هدایت به فایل .htaccess اضافه کنید تا دایرکتوریهای پوشه خاص را مستثنی کند. ▼
RewriteCond %{REQUEST_URI} !^/img.chenweiliang.com/.*$ [NC]این کد را قبل از قانون اول قرار دهید تا تابع حذف دایرکتوری مشخص شده ▼ شود
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/img.chenweiliang.com/.*$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]- پس از اعمال تنظیمات، به فهرست پوشه دسترسی پیدا کنید
/img.chenweiliang.com/صفحات داخل وردپرس توسط وردپرس پردازش نخواهند شد.
دایرکتوری ثانویه /go/ قابل تغییر مسیر نیست
وبلاگ چن ویلیانگ از نسخه پولی افزونه وردپرس GTranslate استفاده میکند و تأیید شده است که افزونه GTranslate از /go/ به عنوان زیرشاخه یا زیردامنه استفاده نمیکند.
با استفاده از افزونه Pretty Link برای افزودن تغییر مسیر پیدا شدچن ویلیانگوبلاگ هاتلگرامهنگام پیوند کانال:
https://www.chenweiliang.com/go/tgchannel
- (این به این دلیل است که پیوند پرش افزونه Pretty Link توسط قانون تغییر مسیر RewriteRule در فایل htaccess. رونویسی شده است)
به طور خودکار به زیر دامنه ای که وجود ندارد می پرد:
http://go. chenweiliang.com/go/tgchannel
- (برای جلوگیری از پیوندهای مرده، پس از رفتن یک فاصله اضافه کنید. در پیوند بالا)
با این حال، جستجوی فایل .htaccess وبلاگ چن ویلیانگ ، RewriteRule حاوی /go/ را پیدا نکرد.
بعد از اینکه سعی کردم پیکربندی GTranslate RewriteRule را حذف کنم، این پیوند با موفقیت تغییر مسیر داد:
https://www.chenweiliang.com/go/tgchannel
- بنابراین، من کاملاً مطمئن هستم که پیکربندی GTranslate RewriteRule باعث خطای تغییر مسیر برای پیوند زیر شاخه /go/ می شود.
چگونه می توان تغییر مسیر زیر شاخه /go/ را حذف کرد؟
اگر نیاز به حذف چندین زیرشاخه مختلف دارید، میتوانید برای اضافه کردن آنها به قوانین تغییر مسیر زیر مراجعه کنید ▼
RewriteCond %{REQUEST_URI} !^/?(directory1|directory2)($|/)- 在
directory1|directory2|etcتعداد دلخواه دایرکتوری را در . - این باید "اگر REQUEST_URI با /directory1 یا /directory2 شروع نمی شود" باشد.
مطابقت خواهد داشت:
- /directory1/dasdas
- / دایرکتوری1
- /directory1/
و خیلی بیشتر……
چگونه می توان لینک های خروجی /go/ را در RewriteRule تنظیم کرد؟
فقط قانون زیر "exclude /go/ subdirectory redirection" را به بالای قانون تغییر مسیر GTranslate اضافه کنید
# Exclude /go/ subdirectory redirection
RewriteCond %{REQUEST_URI} !^/?(go)($|/)
### BEGIN GTranslate config ###
RewriteRule ^([a-z]{2}|af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(.*)$ http://$1.chenweiliang.com/$2 [R=301,L,QSA]
RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(.*)$ /$1/$3 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(.*)$ /wp-content/plugins/gtranslate/url_addon/gtranslate.php?glang=$1&gurl=$2 [L,QSA]
RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)$ /$1/ [R=301,L]
### END GTranslate config ###امیدوارم مقاله «حذف ریدایرکتهای ۳۰۱ و دور زدن قوانین دایرکتوری پوشه با استثنای شبه استاتیک در .htaccess» که در وبلاگ چن ویلیانگ ( https://www.chenweiliang.com/ ) به اشتراک گذاشته شده است، برای شما مفید باشد.
لینک این مقاله را به اشتراک بگذارید: https://www.chenweiliang.com/cwl-28236.html
