2013-06-02 26 views
5

Tôi đang cố gắng để viết lại tất cả www.site.com/hello to www.site.com/index.php?p=hello và nó hoạt động với đoạn mã sau (trong .htaccess):RewriteCond với điều kiện tiêu cực

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]*)/?$ /index.php?p=$1 

Nhưng tôi muốn giữ lại các liên kết cũ làm việc rất www.site.com/?p=hello sẽ ở lại www.site.com/?p=hello

tôi đã thử đoạn mã sau nhưng nó sẽ không làm việc

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(\?p=) 
RewriteRule ^([^/]*)/?$ /index.php?p=$1 

Trả lời

5

tôi đã tìm thấy một câu trả lời.

Sai lầm đang cố gắng lấy thông số GET với REQUEST_URI. Quyền sử dụng phải ở chế độ QUERY STRING như sau:

RewriteCond %{QUERY_STRING} !(p=.*)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]*)/?$ /index.php?p=$1 
Các vấn đề liên quan