我有以下结构:
<div class="invitations">
<%= form_tag assignments_path, method: :post do%>
<div class="form-group">
<%= label_tag 'user_id', 'Choose Freelancer' %>
<%= collection_select(:user_id,User.all,:id,:name) %>
</div>
<%= submit_tag 'Assign', class: 'btn btn-primary' %>
<% end %>
<br>
</div>
其中site.com/organizer
是变量而
organizer
其中site.com/organizer/event
也是变量
当有人访问event
时,我希望它指向/organizer
当有人访问organizer.php?name=$1
时,我希望它指向/organizer/event
。
我能够做第一个或第二个,但从不在一起。他们似乎互相覆盖。
event.php?organizer=$1&event=$2
即使我在上面添加了它:
RewriteRule ^([^/]+)/(.*)$ event.php?organizer=$1&event=$2 [QSA]
RewriteRule ^([^/]+)$ organizer.php?name=$1 [QSA]
似乎所有我在单独文件夹中的CSS,JavaScript,图像等文件都不再指向正确的路径。
我如何解决这两个问题?
答案 0 :(得分:0)
我能够自己解决这个问题:
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ event.php?organizer=$1&event=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)$ organizer.php?name=$1 [L,QSA]
我必须为第二条规则再次提出条件。
同样对于要重写的文件的URL,我在调用它们时在它们前面添加了一个斜杠来修复它:
href="/css/bootstrap.min.css"
而不是
href="css/bootstrap.min.css"