Có cách nào để phát hiện hỗ trợ biểu thức chính quy trong tệp htaccess không?


1

Tôi sử dụng để tuân theo quy tắc viết lại để chuyển toàn bộ url sang tập lệnh php:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*?)$ index.php?rewriteUrl=$1 [QSA,L]

Trên một số máy chủ, tôi phải sử dụng

RewriteRule ^(.*)$ index.php?rewriteUrl=$1 [QSA,L]

thay vào đó ( ?thiếu).

Có cách nào để làm cho máy chủ xử lý việc này tự động không? Ở dạng dự phòng / thử bắt hoặc một cái gì đó như thế này?


Tôi không thể nói tôi hiểu câu hỏi của bạn hoặc điểm có ?biểu thức. Để biết thông tin về cách sử dụng biểu thức chính quy trong mod_rewrite, vui lòng xem tài liệu Apache .
quentinxs

Câu trả lời:


1

Nếu bạn biết số phiên bản khác nhau giữa hai máy chủ, hãy sử dụng mod_version để thực hiện việc này. Chẳng hạn, nếu 2.3+ sử dụng ?:

<IfVersion >= 2.3>
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*?)$ index.php?rewriteUrl=$1 [QSA,L]
</IfVersion>

<IfVersion < 2.3>
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rewriteUrl=$1 [QSA,L]        
</IfVersion>

Sử dụng ServerSignature để gửi thông tin phiên bản cho khách hàng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.