regex


htaccess similar cases like Facebook or Twitter issue


I have this piece of line in my htaccess that causes errors. I couldn't find a similar answer to my inadequate wording.
I am attempting to get "username/followers, username/following, etc" and also "settings/account, settings/password, etc". I stopped using sub folders for non-scripts and images, so everything is on the same level.
Now I know they have similar casing, but I am curious how Facebook, Twitter, etc manage to do this.
Do they condense to one large page to make it work? I know they prevent people from using settings and other root level names from being used, and I haven't quite gotten to that point myself.
RewriteRule ^([^/]+)$ profile_home.php?userdomain=$1 [L]
RewriteRule ^([^/]+)/([^/]+)$ profile_home.php?userdomain=$1&selection=$2 [L]
RewriteRule ^settings/$ profile_settings.php [L]
RewriteRule ^settings/([^/]+)$ profile_settings.php?selection=$1 [L]
RewriteRule ^settings/([^/]+)/([^/]+)$ profile_settings.php?selection=$1&upload=$2 [L]
If I remove
RewriteRule ^([^/]+)/([^/]+)$ profile_home.php?userdomain=$1&selection=$2 [L]
Then everything works fine. How do I make this work with two pages?
I could do
RewriteRule ^settings/([^/]+)/$ profile_settings.php?selection=$1 [L]
But it doesn't look as nice. If not right place to ask, please let me know.
Your second rule matches both directory structures. You can use a negative lookahead so requests starting with the setting are not matched by that rule.
^(?!settings)([^/]+)/([^/]+)$
You can read more about lookaheads here:
http://www.rexegg.com/regex-lookarounds.html
http://www.regular-expressions.info/lookaround.html
Here is my solution
RewriteEngine On
# make sure to add your document root dir
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([\w-.]+)/?$ index.php?id=$1 [L,QSA]
RewriteCond %{DOCUMENT_ROOT}/htdocs/user/$2 -f
RewriteRule ^([\w-]+)/(.+)/?$ $2?id=$1&goto=$2 [L,QSA]
RewriteCond %{DOCUMENT_ROOT}/htdocs/user/$2/index.php -f
RewriteRule ^([\w-.]+)/([a-z0-9]+)/?$ $2/index.php?id=$1&goto=$2 [NC,L,QSA]
RewriteRule ^([\w-.]+)/([a-z0-9]+)/?$ index.php?id=$1&goto=$2 [NC,L,QSA]
so inside your server root dir htdocs/user/ you must have a folder like /user/ and a file index.php this htacess will replace the file site/user/index.php to site/user/username in the same user dir you need to have the following.php file so site/user/username/following.php in the same folder, I think you understand my answer.

Related Links

How to print all uppercase words in a region with sed and friends?
kornshell — using sed for replacement
Bash cp command and quotes
Regex to remove/replace characters before and after string in Notepad++
Get information from file and put in list
regex string that would validate specific alphanumeric format
Pattern matching variable ($1) after doing regex giving incorrect value
Powershell Search a pattern string in two lines together
perl - using HTML to extract data
Regular expression for replacing `<del>` tag inside style and script tag blocks
How to check with regexp that first 2 characters can be letters or digits, but other characters only digits
Vim regex to substitute/escape pipe characters
Match string not containg a certain phrase
Regex compatibility in IE7
Should I Escape Forward and Backslashes? [closed]
Nginx rewrite params/args to directories

Categories

HOME
dynamic-programming
codenameone
xaml
x-editable
android-activity
tcl
parse.com
antlr4
oracle-adf
wav
stm
overloading
wavelet
obiee
sqlconnection
vulkan
editor
flow
teraterm
aerospike
drupal-commerce
formio
software-distribution
jet
ormlite-servicestack
csom
broker
mouseevent
ratchet-2
iteration
vnc
asana-api
kprobe
python-behave
file-manager
svgpanzoom
codeskulptor
sieve-of-eratosthenes
jackrabbit
executorservice
draggable
kmdf
partition
signing
sagepay
word-embedding
mediawiki-api
phasset
hostapd
rating-system
requirements-management
domdocument
formstack
tpl-dataflow
attributerouting
easyhook
autogen
tastypie
email-notifications
geneos
activemodel
webmail
yapdatabase
strace
win32com
mysqladmin
metalkit
ssha
core-data-migration
push-api
axlsx
iscroll4
sqlhelper
epoll
asf
deepzoom
xml.modify
asciiencoding
pydatalog
parsekit
appstore-sandbox
mainwindow
adlds
python-dateutil
dynamic-usercontrols
symfony-2.2
file-structure
mixing
libavg
consistent-hashing
staging
codi
machine.config
jquery-1.3.2
cassandra-0.7
net-ssh
iphone-sdk-3.1

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App