shi*_*med 5 php apache .htaccess mod-rewrite url-rewriting
我.htaccess对seo友好网址有以下规则:
.htaccess规则:
Options -MultiViews
ErrorDocument 404 http://localhost/aponit/dev/not-found.php
ErrorDocument 500 http://localhost/aponit/dev/404.php
RewriteEngine on
RewriteRule ^(?:zones/)?update/(\w+)/?$ zones/update.php?z=$1 [L,QSA,NC]
RewriteRule ^(?:cable-types/)?update/(\w+)/?$ cable-types/update.php?cbl=$1 [L,QSA,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
Run Code Online (Sandbox Code Playgroud)
现在,使用此规则我可以访问以下URL:
http://localhost/aponit/dev/zones/update/63
http://localhost/aponit/dev/cable-types/update/3
Run Code Online (Sandbox Code Playgroud)
现在我必须创建更多这种类型的URL!那么在这.htaccess条规则中是否有最小化规则?
我的意思是如果我需要10个不同的URL我必须在.htaccess文件中添加10个规则.例如:
RewriteRule ^(?:another/)?another-f/(\w+)/?$ another/another-f.php?another-id=$1 [L,QSA,NC]
Run Code Online (Sandbox Code Playgroud)
我希望此.htaccess文件中有一个规则用于此类网址.
更新:
在zones文件夹下的index.php文件中,我有以下代码来编辑和添加新数据:
<a class="btn btn-success btn-xs" href="<?php echo SITE_URL."zones/update/$zone_id"?>" >Edit</a>
<h4 class="panel-title pull-right"><a href="<?php echo SITE_URL.'zones/add' ?>" class="btn btn-primary">Add New Zones</a></h4>
Run Code Online (Sandbox Code Playgroud)
要编辑表单数据,我需要这种类型的URL:
http://localhost/aponit/dev/zones/update/63
Run Code Online (Sandbox Code Playgroud)
太添加数据我需要这种类型的网址:
http://localhost/aponit/dev/zones/add
Run Code Online (Sandbox Code Playgroud)
最后在.htaccess规则中,我只需要一个规则来遵循这种类型的URL
使用这两个通用规则代替上述类型的规则:
RewriteCond %{DOCUMENT_ROOT}/aponit/dev/$1/$2\.php -f
RewriteRule ^([\w-]+)/([\w-]+)/?$ $1/$2.php [L]
RewriteCond %{DOCUMENT_ROOT}/aponit/dev/$1/$2\.php -f
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ $1/$2.php?q=$3 [L,QSA]
Run Code Online (Sandbox Code Playgroud)
q请注意,所有此类 URL 的GET 参数名称都相同。.php您可以使用内部文件$_GET['q']来读取它。
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |