Apache2, Ubuntu,AliasMatch: tümü üzerinde Eş karma
Sadece 1 numaralı ihtiyaçları /etc/apache2/sites-available/default.conf ad verilmiş olması durumu dışında, 2 numaralı yapmaz. Başka içine 1 $ geçer ^/# ile herhangi url atlar bir AliasMatch regex gereken yeni/yol/$ 1
- url.com/some_dir
Aşağıdaki yaklaşımları denedim: İlk önce hem 1 hem de 2'yi yönlendirir çünkü (. *). İkincisi hiç çalışmıyor. Üçüncüsü de çalışmıyor, ama varsayılan olarak atlamak için alfa sayısal chars üzerinde eşleştirmeye çalışıyordum, aynı zamanda işe yaramaz. Hala url 1 uygun Diğer adı izin verirken, aynı
AliasMatch "(?i)^/(.*)$" "/new/path/$1" AliasMatch "(?i)^((?!#).)*$" "/new/path/$1" AliasMatch "^/[a-zA-Z0-9_-]+$" "/new/path/$1"
nasıl url 2 ihmal edersiniz? ^[^#]+$
Veya bu bir: ^.*?/[^#]+$
Oldukça anlaşılır konum
Ben çoğunluğunu anlıyorum; ama bir sebepten dolayı bu problemi çözemiyorum. Bir # ile başlamıyorsa, örnek 1'in URL'sindeki eğik çizgiden sonra her şeyi yakalamaya çalışıyorum. Önerilen normal ifadenizin çeşitli biçimlerini denemedim, boşuna. Bence oldukça yakın .. –
@MattBunch Başka bir tane daha ekledim. Diğer ikisinden daha iyi ve daha hızlı olmalı ve testlerimde çalışıyor. (Ben regex lezzetiniz onunla çalışmak için yeterince standart olduğunu düşünüyorum.) – Laurel
yakın. :) şimdi sorun, apache, URL'leri takma addır, ama /index.html ekleniyor ve regex tekrar çalıştırılıyor ve /index.html/index.html vb. ekleniyor. Bu yüzden sadece başka bir koşul eklememiz gerekiyor domain.com/ [this]/[ve bu değil]/[ya da bu]/[etc] arasında ne kaptığını ele alalım Sorunumu çözmek için en iyi yaklaşımın bu olmadığını merak ediyorum. Bu sitede test edildiğinde regex çalışır (Bilginize apache2 "Perl Uyumlu Normal İfade kelime" kullanıyor) : [link] (http://www.regexplanet.com/advanced/perl/index.html) –