我在php中使用调度程序编写了一个web应用程序,所以我想通过get参数将控制器和函数传递给index.php,但为了获取SEO URL我想写一些重写规则,但我不能解决它们上班。 这是一个例子。
网址:http://api.domain.com/v1/这里是index.php
DirectoryIndex index.php
RewriteEngine On
Options +FollowSymLinks
#Das explizite Setzen der Basis-URL f�r die weiteren Manipulation.
RewriteBase /v1/
#schlie�e existierende Dateien
RewriteCond %{REQUEST_FILENAME} !-f
#Ignoriere URL's die mit .htm enden
RewriteCond %{REQUEST_URI} !.+\.htm
#es erfolgt ein Aufruf ohne trailing slash
RewriteCond %{REQUEST_URI} !(.*)/$
#api events und mods
RewriteRule ^Login/do/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ ?evt=Login&mod=_do&username=$1&password=$2&m=$3 [NC,L] # Process to index
#Es wird gepr�ft, ob es sich um eine vorhandene Datei handelt.
RewriteCond %{REQUEST_FILENAME} !-f
#Es wird gepr�ft, ob es sich um ein vorhandenes Verzeichnis handelt.
RewriteCond %{REQUEST_FILENAME} !-d
#Verarbeite alles mit der index.php Datei.
RewriteRule (.*) index.php
我想要一个这样的网址:http://api.domain.com/v1/Login/do/username/password/m/ 但我的PHP脚本没有得到登录和_do参数! 这些重写规则有什么问题?
答案 0 :(得分:1)
这是你的htaccess的更干净版本,这应该可行
RewriteEngine On
RewriteBase /v1/
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule ^Login/do/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?evt=Login&mod=_do&username=$1&password=$2&m=$3 [NC,L]
RewriteRule ^(.*)$ index.php [L]