.htaccess Menulis Ulang Subdirektori Wordpress tanpa merusak subdirektori lain
Jadi saya telah menginstal WordPress /wp/
tetapi saya ingin semua URL WordPress ditulis ulang untuk muncul di direktori root. Saat ini saya memiliki ini berfungsi (lihat di bawah) tetapi saya ingin mengubah saya .htaccess
sehingga tidak merusak subdirektori lainnya.
Misalnya, jika saya ingin mengunjungi www.example.com/images/image.png
, saat ini mengalihkan saya ke halaman 404 di WordPress.
Apakah ini mungkin .htaccess
?
Kode saat ini:
RewriteEngine on
#Wordpress
# Rewrites all URLS without wp in them
RewriteCond %{REQUEST_URI} !^/wp/
# Rewrites all URLS [Replace "example" with the actual domain, without the TLD (.com, .net, .biz, etc)]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.
# Rewrite all those to insert /folder
RewriteRule ^(.*)$ /wp/$1 [L]
Pembaruan : Menguji saran MrWhite dengan mode Penyamaran dan browser kedua. Tidak berpengaruh. .htaccess
File baru :
RewriteEngine on
#Wordpress
# Rewrites all URLS without wp in them
RewriteCond %{REQUEST_URI} !^/wp/
# Rewrites all URLS [Replace "example" with the actual domain, without the TLD (.com, .net, .biz, etc)]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.
# Rewrite all those to insert /folder
RewriteRule ^(.*)$ /wp/$1 [L]
# Request does not map to an existing file
RewriteCond %{REQUEST_FILENAME} !-f
Jawaban
Anda perlu menambahkan kondisi untuk mengecualikan file yang ada, jika tidak, permintaan /images/image.png
akan secara alami ditulis ulang /wp/images/image.png
dan memicu 404 di WordPress (kecuali jika /wp/images/image.png
memang ada).
Misalnya, tambahkan kondisi berikut ke aturan Anda yang sudah ada:
# Request does not map to an existing file
RewriteCond %{REQUEST_FILENAME} !-f
UPDATE: ini sepertinya tidak berhasil. Masih membuka halaman 404 WordPress
Anda menempatkan RewriteCond
perintah di tempat yang salah.
RewriteCond
arahan bukanlah pernyataan yang sepenuhnya terpisah, itu adalah kondisi yang berlaku untuk RewriteRule
arahan yang mengikuti. Sendiri, RewriteCond
arahan tidak melakukan apa-apa.
The RewriteCond
kebutuhan direktif untuk pergi (di mana saja) sebelum yang RewriteRule
direktif:
RewriteEngine on
#Wordpress
# Rewrites all URLS without wp in them
RewriteCond %{REQUEST_URI} !^/wp/
# Rewrites all URLS [Replace "example" with the actual domain, without the TLD (.com, .net, .biz, etc)]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.
# Request does not map to an existing file
RewriteCond %{REQUEST_FILENAME} !-f
# Rewrite all those to insert /folder
RewriteRule ^(.*)$ /wp/$1 [L]
Selain itu, lihat .htaccess
file "WordPress" di /wp
subdirektori untuk referensi. Itu melakukan hal yang sama.
Selain: Kecuali Anda memiliki beberapa domain atau subdomain yang tidak ingin Anda tulis ulang, maka Anda dapat menghapus pemeriksaan nama host (yaitu, RewriteCond
perintah yang memeriksa HTTP_HOST
variabel server).