NetVision-Technik

NetVision-Technik (http://www.netvision-technik.de/forum/index.php)
-   Webanwendungen (http://www.netvision-technik.de/forum/forumdisplay.php?f=13)
-   -   Mod_rewrite on Nginx (http://www.netvision-technik.de/forum/showthread.php?t=7157)

Lex 04.10.2013 21:02

Mod_rewrite on Nginx
 
Hey alle,

Ich suche im Moment eine gute Anleitung oder jemanden der mir durch diesen Task hilft. Ich habe leider mit RegEx nicht wirklich erfahrung
doch bei Apache gab es immerhin bessere Tut´s dafür. Bei Nginx stoße ich da leider auf sehr viel weniger Informationen und benötige daher
etwas Hilfe.

Ich möchte nichts großartiges, lediglich eine Rewrite wie folgt.

Code:

Request URL = http://example.com/this-is-an-page-name

soll weitergeleitet werden an http://example.com/index.php?site=this-is-an-page-name

fürs erste würde das vollkommen reichen.

Lg Lex

orti1980 04.10.2013 21:20

hier hast du einpaar beispiele

PHP-Code:


#<IfModule mod_security.c>
#    secfilterengine off
#    secfilterscanPOST off
#</IfModule>

Options All -Indexes
FileETag MTime Size
Options 
+FollowSymlinks
RewriteEngine on

<FilesMatch "\.(db|inc|tmpl|h|ihtml|sql|ini|configuration|config|class|bin|spd|theme|module|cfg|cpl|tmp|log|err|inc.php|class.php)$">
order allow,deny
satisfy all
</FilesMatch>

########## Begin - Rewrite rules to block out some common exploits
#                              
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRINGmosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRINGbase64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRINGGLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING_REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
#RewriteRule ^(.*)$ index.php [L]
RewriteRule ^([^.]*)/?$ index.php [L]

########## End - Rewrite rules to block out some common exploits


RewriteEngine on
#
#
#
#URL Rewriting for Videos
RewriteRule ^videos/(.*)/(.*)/(.*)/(.*)/(.*) videos.php?cat=$1&sort=$3&time=$4&page=$5&seo_cat_name=$[L]
RewriteRule ^videos/([0-9]+) videos.php?page=$[L]
RewriteRule ^videos/?$ videos.php?%{QUERY_STRING} [L]
RewriteRule ^video/(.*)/(.*) watch_video.php?v=$1&%{QUERY_STRING} [L]
#Alternate watch video links
RewriteRule ^(.*)\_v([0-9]+) watch_video.php?v=$2&%{QUERY_STRING} [L]
RewriteRule ^video/([0-9]+)_(.*) watch_video.php?v=$1&%{QUERY_STRING} [L]


#
#Users, Channel & Management
#

RewriteRule ^channels/(.*)/(.*)/(.*)/(.*)/(.*) channels.php?cat=$1&sort=$3&time=$4&page=$5&seo_cat_name=$[L]
RewriteRule ^channels/([0-9]+) channels.php?page=$[L]
RewriteRule ^channels/?$ channels.php [L]
RewriteRule ^members/?$                                channels.php [nc]
RewriteRule ^users/?$                                channels.php [nc]
RewriteRule ^user/(.*)                        view_channel.php?user=$[nc]
RewriteRule ^channel/(.*)                    view_channel.php?user=$[nc]


RewriteRule ^my_account                    myaccount.php [nc]



#Pages
RewriteRule ^page/([0-9]+)/(.*)                        view_page.php?pid=$[nc]
#
#Miscellenous
RewriteRule ^search/result/?$                            search_result.php [nc]
RewriteRule ^upload/?$                                    upload.php [nc]
RewriteRule ^contact/?$                                contact.php [nc]
RewriteRule ^categories/?$                                categories.php [nc]

#Group Section

RewriteRule ^group/([a-zA-Z0-9].+)                    view_group.php?url=$1&%{QUERY_STRING} [L]

RewriteRule ^view_topic/([a-zA-Z0-9].+)_tid_([0-9]+)                    view_topic.php?tid=$2&%{QUERY_STRING} [L]
RewriteRule ^groups/(.*)/(.*)/(.*)/(.*)/(.*) groups.php?cat=$1&sort=$3&time=$4&page=$5&seo_cat_name=$[L]
RewriteRule ^groups/([0-9]+) groups.php?page=$[L]
RewriteRule ^groups/?$ groups.php [L]
RewriteRule ^create_group create_group.php [L]

#Collection Section
RewriteRule ^collections/(.*)/(.*)/(.*)/(.*)/(.*)         collections.php?cat=$1&sort=$3&time=$4&page=$5&seo_cat_name=$[L]
RewriteRule ^collections/([0-9]+) collections.php?page=$[L]
RewriteRule ^collections/?$                                 collections.php [L]
RewriteRule ^photos/(.*)/(.*)/(.*)/(.*)/(.*)             photos.php?cat=$1&sort=$3&time=$4&page=$5&seo_cat_name=$[L]
RewriteRule ^photos/([0-9]+) photos.php?page=$[L]
RewriteRule ^photos/?$                                     photos.php [L]
RewriteRule ^collection/(.*)/(.*)/(.*)                    view_collection.php?cid=$1&type=$2&%{QUERY_STRING} [L]

#Photo Section
RewriteRule ^item/(.*)/(.*)/(.*)/(.*)                     view_item.php?item=$3&type=$1&collection=$[L]
RewriteRule ^photo_upload/(.*)                             photo_upload.php?collection=$[L]
RewriteRule ^photo_upload/?$                                photo_upload.php [L]
#
RewriteRule ^sitemap.xmlsitemap.php
RewriteRule 
^signup/?$ signup.php

#Error Pages
ErrorDocument 404 /404.php
ErrorDocument 403 
/403.php

########## End - Rewrite rules For SEO urls ######################
RewriteRule ^rss$                           rss.php [nc]
RewriteRule ^rss/([a-zA-Z0-9].+)$           rss.php?mode=$1&%{QUERY_STRING} [nc]

########## End - Rewrite rules For SEO urls ######################

RewriteRule    ^([a-zA-Z0-9-]+)/?$     view_channel.php?uid=$1&seo_diret=yes [NS


ike 04.10.2013 22:09

Zitat:

Zitat von orti1980 (Beitrag 80387)
hier hast du einpaar beispiele

Das ist für Apache


Versuch mal sowas:

PHP-Code:

rewrite  "/([\w-]*)$" /index.php?site=$1 last


Lex 04.10.2013 22:30

Hi Orti1980,

Vielen Dank, auch wenn es scheinbar nicht für Nginx gedacht ist.

@Ike, Danke, ich werde das so schnell als möglich testen :)

Lg Lex

Flori12345 05.10.2013 08:32

oder so vieleicht weiß net ob dir das hilft

Code:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^google.de$ [NC]
RewriteRule ^(.*)$ http://www.google.de [R=301,L]


Miata3de 05.10.2013 10:06

Hab selber leider keine Erfahrung mit nginx, da ich den lighttpd nutze..
Aber ich habe hier mal nen link, vielleicht hilft dir das.
HttpRewriteModule

LG
Miata3de

tantetoni2 05.10.2013 11:26

lex einfach mal hier schauen

HttpRewriteModule
Converting rewrite rules

Lex 05.10.2013 11:39

Hi,

Ja die 2 Links hatte ich mit Google auch gefunden, doch wie gesagt, mit RegEx hab ichs nicht so, und es sind leider keine Beispiele für meinen Fall vorhanden die ich anpassen könnte.
Ich hoffe ich komme heute dazu die gepostete Möglichkeit von IKE zu testen, und hoffe mal es klappt alles :)

Lg Lex

Chaosman 05.10.2013 11:43

Villeicht sowas?

PHP-Code:

RewriteEngine on

# die Datei liegt im Verzeichnis /abc/def 
# erreichbar ist dieses Verzeichnis aber über /xyz 
# bspw. weil in der httpd.conf folgendes gesetzt wurde: 
# Alias /xyz /abc/def 
#
RewriteBase /xyz RewriteRule ^(.*)\.htm$ $1.html # macht alle *.html auch als *.htm erreichbar

RewriteEngine on 
RewriteRule 
(.*)\.html$ /cgi-bin/script.pl?var=$

Standard-Domain definieren:

HTML-Code:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

schau mal hier
Mod_Rewrite


tantetoni2 05.10.2013 12:08

ich weiss nicht ob das irgendjemand checkt, aber es geht um nginx und nicht um apache wenn ich das richtig gelesen hab


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 Uhr.

Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2025, vBulletin Solutions, Inc.