Rumah > Soal Jawab > teks badan
Saya menghadapi masalah menulis semula laluan fail menggunakan rentetan pertanyaan
Saya cuba dapatkan url seperti ini:
https://url.com/products/1_Samsung_Galaxy
Dan tulis semula permintaan ke pelayan saya seperti ini:
https:url.com/model.php?id=1&title=Samsung_Galaxy
Beginilah rupa htaccess saya setakat ini:
RewriteEngine On #rewrite no ending files to .php if file doesn't exist RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !products/ RewriteRule ^([^.]+)$ .php [NC,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/products/([1-9]+)(.*)$ model.php?id=&title= [NC,L]
Dengan konfigurasi semasa, permintaan dihantar ke fail bernama products.php yang terletak dalam direktori yang sama seperti model.php, tetapi nampaknya berada dalam direktori yang berbeza kerana beberapa fail skrip dirujuk dalam products.php dengan laluan relatif membuang Pengecualian adalah ralat di mana objek yang terkandung di dalamnya tidak wujud.
Sebenarnya, masalah utama saya ialah saya tidak tahu sintaks apache atau cara ia berfungsi, dan saya menghadapi kesukaran mencari sumber di mana saya boleh belajar tentang apache. Atas sebab tertentu dokumentasi apache tidak banyak membantu. Jika ada sumber yang baik untuk mempelajari cara menulis fail apache, saya ingin menyemaknya juga.
P粉4638244102024-01-02 10:59:01
Soalan anda agak kabur, tetapi saya rasa inilah yang anda cari:
RewriteEngine On # rewrite /products/to /model.php/..... RewriteRule ^/?products/(\d+)(.*)$ /model.php?id=&title= [L] # rewrite to "...php" if such file exists RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^ %{REQUEST_URI}.php [L]
Peraturan ini akan berfungsi jika dilaksanakan dalam konfigurasi hos pelayan http. Sebagai alternatif, jika anda tidak mempunyai akses kepada fail tersebut, anda boleh mengaksesnya dalam fail konfigurasi yang diedarkan (".htaccess") yang terletak dalam folder DOCUMENT_ROOT
hos http.
Perbezaan utama daripada percubaan anda:
Anda juga menyebut bahawa anda "tidak biasa dengan sintaks apache" dan akan menghadapi masalah mencari sumber untuk mempelajarinya.
Saya sentiasa mengesyorkan dokumentasi rasmi modul apache. Mereka mempunyai kualiti yang sangat baik dan memberikan contoh yang hebat:
https://httpd.apache.org/docs/current/mod /mod_rewrite.html