Şu anda htaccess dosyamda bu var:

RewriteEngine on RewriteRule ^chart-(.*)\.php$ ./keyboard-chart.php?seo=$1 [QSA] RewriteRule ^keyboard-diagram-(.*)\.php$ ./keyboard-chart.php?seo=$1 [QSA] 

Ancak, 2. satırı kullanımdan kaldırmak istiyorum, böylece bunun yerine şöyle bir şey olur:

Whatever ^chart-(.*)\.php$ ./keyboard-diagram-$1.php 

Örneğin. İstiyorum keyboard-diagram-$1.php Tarayıcı adres çubuğunda görünecek URL. Ama doğru sözdizimini bilmiyorum. Bu davranışı nasıl düzgün bir şekilde uygularım? Teşekkürler.

Kalıcı bir yönlendirme veya geçici bir yönlendirme sunma seçeneğiniz var. Muhtemelen kalıcı hale getirmek istiyorsun. Stack Overflow'da neden burada olduğuna dair iyi bir açıklama var.

Şu anda, URL'yi dahili olarak yeniden yazıyorsunuz, ancak yapmanız gereken, tarayıcının yeni kaynağı fiilen yüklemesini sağlamaktır.

RewriteRule ^chart-(.*)\.php$ ./keyboard-diagram-$1.php [R=301,L] 

Yayınladığınız şeyin zaten sunucunuzda çalıştığını varsayıyorum, sunucumda '.' İşaretini bırakmadan doğru şekilde yeniden yönlendirmiyor.

RewriteRule ^chart-(.*)\.php$ ./keyboard-diagram-$1.php [R=301,L] ^ 

Ayarlamaya değer olabilir [R=302,L] testi bitirene kadar. 301 kullanıyorsanız ve istediğiniz şeyi yapmıyorsa VE tarayıcınız / herhangi bir proxy hatırlarsa, test etmek gerçekten acı verici olabilir. Yeniden yönlendirmenin gelecekte değişme olasılığı çok düşükse, 302'ye bağlı kalmalısınız - unutmayın, 301 kalıcı anlamına gelir ve gerçekten bunun anlamı vardır.

DÜZENLEME: Bunu daha eksiksiz bir şekilde yazacağım

RewriteEngine on RewriteBase / #On some hosts this additional line is necessary and it is *possible* that it may need to be a path on some weird hosts or configurations RewriteRule ^chart-(.*)\.php$ ./keyboard-diagram-$1.php [R=301,L] # On the above line you may ^ need to remove the dot indicated - didn't work correctly on my test with it in place. 
  • 1 @ posfan12 Mine. yerinde, onsuz deneyin.
  • 1 @ posfan12 Böylece, nokta olmadan, doğrudan altında ayrı bir çizgi olan nokta ile deneyebilirsiniz. RewriteEngine on okuma RewriteBase / Ve olmadan. Denenecek dört kombinasyon var mı?
  • 1 @PatrickMevzek Dürüst olacağım, bunu başka türlü yapmayı hiç denemedim. Bunu diğer sunucu yapılandırma dosyalarıyla yapabileceğiniz muhtemelen doğrudur, ancak ya ana bilgisayarda birden fazla web sitesi varsa? Kullanma .htaccess hemen hemen evrenseldir, her ana bilgisayar diğerlerine erişim sağlamaz.
  • 2 "ya sunucunun birden fazla web sitesi varsa?" hiç sorun değil, her web sitesi bir VirtualHost temelde bloke edin ve oraya ilgili yapılandırmayı koyarsınız. Ayrıca kullanabilirsin Include yapılandırmayı birden çok dosyada ayırmak için yönergeler. Aslında birçok standart kurulumda web sitesi başına bir yapılandırma dosyanız vardır. Ancak bu birçok yönden daha iyidir .htaccess, eğer sunucu tamamen seninse elbette.
  • 1 kullandım RewriteRule ^chart-(.*)\.php$ http://isometricland.net/keyboard/keyboard-diagram-$1.php [R=301,L]. Tam olarak oluşturulmuş eksiksiz URL hile yaptı. (Bu ipucunu bir eğitim web sitesinden aldım.)

Sizin için çalışmış: Charles Robertson | bize ister?