Heim > Fragen und Antworten > Hauptteil
Ich habe Probleme, Dateipfade mithilfe von Abfragezeichenfolgen neu zu schreiben
Ich versuche, eine URL wie diese zu erhalten:
https://url.com/products/1_Samsung_Galaxy
Und schreibe die Anfrage wie folgt an meinen Server um:
https:url.com/model.php?id=1&title=Samsung_Galaxy
So sieht mein htaccess bisher aus:
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]
Mit der aktuellen Konfiguration werden Anfragen an eine Datei namens „products.php“ gesendet, die sich im selben Verzeichnis wie „model.php“ befindet, aber scheinbar in einem anderen Verzeichnis liegt, da einige Skriptdateien, auf die in „products.php“ mit relativen Pfaden verwiesen wird, Ausnahmen auslösen wenn das darin enthaltene Objekt nicht existiert.
Eigentlich besteht mein Hauptproblem darin, dass ich die Apache-Syntax oder deren Funktionsweise nicht kenne und es mir schwer fällt, Ressourcen zu finden, in denen ich etwas über Apache lernen kann. Aus irgendeinem Grund ist die Apache-Dokumentation keine große Hilfe. Wenn es eine gute Ressource zum Erlernen des Schreibens von Apache-Dateien gibt, würde ich sie mir auch gerne ansehen.
P粉4638244102024-01-02 10:59:01
您的问题有点模糊,但我认为这就是您正在寻找的:
RewriteEngine On # rewrite /products/to /model.php/..... RewriteRule ^/?products/(\d+)(.*)$ /model.php?id=$1&title=$2 [L] # rewrite to "...php" if such file exists RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^ %{REQUEST_URI}.php [L]
如果在 http 服务器的主机配置中实施,这些规则将起作用。或者,如果您无权访问该文件,则可以在位于 http 主机的 DOCUMENT_ROOT
文件夹中的分布式配置文件(“.htaccess”)中进行访问。
与您的尝试的主要区别:
您还提到您“不熟悉 apache 语法”并且很难找到资源来学习它。
我总是推荐 apache 模块的官方文档。它们品质卓越,并提供了很好的示例:
https://httpd.apache.org/docs/current/mod /mod_rewrite.html