Tôi đang cố gắng tạo quy tắc được sử dụng trong tệp .htaccess để khớp với mọi thứ trừ một chuỗi cụ thể, trong trường hợp này là index
..htaccess ghi lại regex: khớp mọi thứ nhưng "chỉ mục"
Tôi nghĩ rằng có thể phù hợp với chuỗi đặc biệt này trước tiên và sử dụng [L]
nhưng không hoạt động,
và có thể sử dụng regex sau, nhưng nó gây ra lỗi 500.
Tôi muốn để phù hợp với:
- pagename1
- pagename2/bất cứ điều gì
- pagename3/234/bất cứ điều gì
- về
- xúc-us
- (vv)
nhưng n ot
- index/123
- index/124/bất cứ điều gì
(BTW "chỉ số" là tên của một tập tin không có phần mở rộng, không phải lựa chọn của tôi, đây là một điều làm việc)
^(?!index)[\w/\-]+
Tôi giả định rằng việc thực thi apex của apache không tuân theo quy tắc (?!xxx)
.
Bất kỳ trợ giúp/đề xuất nào sẽ được đánh giá cao.
Tôi chỉ có thể làm việc này bằng cách sử dụng "! Index" thay vì "!^Index". (Và có, "chỉ số" là một sự khởi đầu của chuỗi yêu cầu, như trong câu hỏi của jezmck ở trên). Bất kỳ suy nghĩ nào về lý do tại sao điều này có thể xảy ra? – rinogo
Giải quyết nó. Ngay cả khi bạn đang làm việc trong thư mục con, sử dụng "RewriteCond% {REQUEST_URI}" sử dụng toàn bộ URI yêu cầu, vì vậy bạn phải đưa đường dẫn www vào thư mục hiện tại. Trong trường hợp của tôi, điều này có nghĩa là tôi đã sử dụng: "RewriteCond% {REQUEST_URI}! ^/R/index $" (tệp .htaccess mà tôi đang làm trong thư mục 'r'). – rinogo