从GET重写动态URL

时间:2014-05-05 13:16:10

标签: php .htaccess url-rewrite-module

我想重写基于我拥有的目录的URL 我的目录看起来像这样:

index.php
galleries
   -Party Weekend
       -2014
          -Bunchofimages.png
   -Other pics
       -Pictures.png

网址看起来像:

example.com/?f=/Party%20Weekend/2014

我正在寻找像

这样的东西
example.com/Party-Weekend/2014

(可以是短划线或+符号,并不重要)

(使用.htaccess似乎是最好的选择,但我根本没有使用.htaccess的经验

我是否还需要自定义重写引擎中的每个文件夹,还是可以动态完成? (所以我不需要为我创建的每个文件夹制定新规则)

我试过这个,但根本没有改写任何东西

RewriteEngine On 
RewriteRule ^([^/]*)/$ /?f=$1 [L]

我在这里做错了吗?

2 个答案:

答案 0 :(得分:1)

尝试类似:

RewriteEngine On

RewriteCond %{THE_REQUEST} \ /+\?f=([^\ &]+)
RewriteRule ^ /%1? [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/galleries%{REQUEST_URI} -d
RewriteRule ^(.*)$ /?f=$1 [L]

可能是与文件夹名称中的空格相关的一些编码问题,因此您可能需要在括号旁边的NEB标记的某种组合

答案 1 :(得分:-2)

使用.htacces是最好也是唯一的方法 您不必动态自定义所有文件夹 请转到此页面了解更多详情 初学者的URL重写: http://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/