alt klasörler yolları ile mod_rewrite sorun

4 Cevap php
From : www.example.com/cut/456
To : www.example.com/cut/index.php?tag=456

Ben bu deneyin ve işe yaramazsa

RewriteEngine On
RewriteRule ^([^/]*)$ /cut/index.php?tag=$1 [L]

4 Cevap

RewriteEngine On
RewriteBase /cut/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ /index.php?tag=$1 [L]

Bu çalışmak oluyor

Lütfen .htaccess cut dizininde bulunan sürece, kullanmak için daha iyi olmalı:

RewriteRule ^cut/(.+)/?$ /cut/index.php?tag=$1 [L]

aksi halde

RewriteRule ^(.+)/?$ index.php?tag=$1 [L]

yapmalıdır. Bu ikame dize ile sorun gibi görünüyor, o doesn't work bir sorun yeterli bir açıklama değildir, çünkü tam olarak nedeni ne söylemek zor.

Sadece tamsayı değerleri bekliyorsanız, bu tür değerlerine desen kısıtlamak gerekir:

RewriteRule ^([1-9][0-9]*)$ index.php?tag=$1 [L]

Geçerli desenli sorunu ^([^/]*)$ de (dizin başına yol öneki olmadan /cut/index.php) index.php eşleşmiyor ve böylece sonsuz bir döngüye neden olabilir olmasıdır.

Sunucu aslında. Htaccess yüklüyor? Sen dosyanın sonunda çöp aynalı ve bunun için bir hata alırsanız görerek kontrol edebilirsiniz.

Değilse, AllowOverride muhtemelen bir yerde daha yüksek bir dizin ağacında Yok ayarlanır. Yere Apache ana yapılandırma dosyasında bir <Directory /path/to/cut> bildirmek ve onun içinde AllowOverride All koyarak deneyin.